quantum-drive-shaft
Advanced tools
Comparing version 0.0.18 to 0.0.19
@@ -5,3 +5,3 @@ import NuggetController from "./modules/nugget/NuggetController"; | ||
export default class Quantum { | ||
static init(domain: string, token: string): void; | ||
static init(domain: string, token: string | Function): void; | ||
static setDefaultDomain(domain: string): void; | ||
@@ -8,0 +8,0 @@ static updateToken(domain: string, token: string): void; |
@@ -1,13 +0,20 @@ | ||
import * as superagent from 'superagent'; | ||
import { Subject } from 'rxjs'; | ||
import BaseRequest from './BaseRequest'; | ||
export default class BaseClient { | ||
token: string; | ||
defaultHeaders: object; | ||
tokenGenerator: any; | ||
retryCount: number; | ||
errorHandler: Subject<unknown>; | ||
constructor(domain: string, token: string); | ||
get(url: string, qs?: object, customHeaders?: object): Promise<any>; | ||
post(url: string, body: object, customHeaders?: object): Promise<void | superagent.Response>; | ||
put(url: string, body: object, customHeaders?: object): Promise<void | superagent.Response>; | ||
delete(url: string, customHeaders?: object): Promise<void | superagent.Response>; | ||
constructor(domain: string, token: string | Function); | ||
getHeaders(): Promise<{ | ||
accept: string; | ||
authorization: string; | ||
'content-type': string; | ||
}>; | ||
get(url: string, qs?: object | null, customHeaders?: object | null): Promise<any>; | ||
post(url: string, body: object, customHeaders?: object | null): Promise<object>; | ||
put(url: string, body: object, customHeaders?: object | null): Promise<object>; | ||
delete(url: string, customHeaders?: object | null): Promise<object>; | ||
runRequest(requestData: BaseRequest): Promise<object>; | ||
private errorHandling; | ||
} |
@@ -11,72 +11,91 @@ "use strict"; | ||
}; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | ||
result["default"] = mod; | ||
return result; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const superagent = __importStar(require("superagent")); | ||
const superagent_1 = __importDefault(require("superagent")); | ||
const rxjs_1 = require("rxjs"); | ||
const BaseRequest_1 = __importDefault(require("./BaseRequest")); | ||
class BaseClient { | ||
constructor(domain, token) { | ||
this.token = ''; | ||
this.retryCount = 0; | ||
this.errorHandler = new rxjs_1.Subject(); | ||
this.token = token; | ||
this.defaultHeaders = { | ||
accept: 'application/json', | ||
authorization: `Bearer ${this.token}`, | ||
'content-type': 'application/json' | ||
}; | ||
if (typeof token === 'function') { | ||
this.tokenGenerator = token; | ||
} | ||
else { | ||
this.tokenGenerator = () => token; | ||
} | ||
} | ||
get(url, qs, customHeaders) { | ||
getHeaders() { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const headers = Object.assign(this.defaultHeaders, customHeaders || {}); | ||
const query = Object.assign({}, qs || {}); | ||
try { | ||
return yield superagent.get(url).query(query).set(headers); | ||
if (!this.token) { | ||
this.token = yield this.tokenGenerator(); | ||
console.log(666, this.token); | ||
this.retryCount++; | ||
} | ||
catch (err) { | ||
return this.errorHandling(err); | ||
} | ||
return { | ||
accept: 'application/json', | ||
authorization: `Bearer ${this.token}`, | ||
'content-type': 'application/json' | ||
}; | ||
}); | ||
} | ||
post(url, body, customHeaders) { | ||
get(url, qs = null, customHeaders = null) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const headers = Object.assign(this.defaultHeaders, customHeaders || {}); | ||
try { | ||
return yield superagent.post(url).set(headers).send(body); | ||
} | ||
catch (err) { | ||
return this.errorHandling(err); | ||
} | ||
const requestData = new BaseRequest_1.default('GET', url, qs, customHeaders, null); | ||
return this.runRequest(requestData); | ||
}); | ||
} | ||
put(url, body, customHeaders) { | ||
post(url, body, customHeaders = null) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const headers = Object.assign(this.defaultHeaders, customHeaders || {}); | ||
const requestData = new BaseRequest_1.default('POST', url, null, customHeaders, body); | ||
return this.runRequest(requestData); | ||
}); | ||
} | ||
put(url, body, customHeaders = null) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const requestData = new BaseRequest_1.default('PUT', url, null, customHeaders, body); | ||
return this.runRequest(requestData); | ||
}); | ||
} | ||
delete(url, customHeaders = null) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const requestData = new BaseRequest_1.default('DELETE', url, null, customHeaders, null); | ||
return this.runRequest(requestData); | ||
}); | ||
} | ||
runRequest(requestData) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const headers = Object.assign(yield this.getHeaders(), requestData.customHeaders || {}); | ||
try { | ||
return superagent.put(url).set(headers).send(body); | ||
let request = superagent_1.default(requestData.method, requestData.url).set(headers); | ||
if (requestData.queryString) { | ||
request = request.query(requestData.queryString); | ||
} | ||
if (requestData.body) { | ||
request = request.send(requestData.body); | ||
} | ||
return yield request; | ||
} | ||
catch (err) { | ||
return this.errorHandling(err); | ||
return this.errorHandling(err, requestData); | ||
} | ||
}); | ||
} | ||
delete(url, customHeaders) { | ||
errorHandling(err, requestData) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const headers = Object.assign(this.defaultHeaders, customHeaders || {}); | ||
try { | ||
return superagent.del(url).set(headers); | ||
if (err.status === 401 && this.retryCount < 2) { | ||
this.token = ''; | ||
return this.runRequest(requestData); | ||
} | ||
catch (err) { | ||
return this.errorHandling(err); | ||
else { | ||
this.retryCount = 0; | ||
this.errorHandler.next(JSON.parse(err.message)); | ||
throw Error(JSON.parse(err.message)); | ||
} | ||
}); | ||
} | ||
errorHandling(err) { | ||
this.errorHandler.next(JSON.parse(err.message)); | ||
throw Error(JSON.parse(err.message)); | ||
} | ||
} | ||
exports.default = BaseClient; |
@@ -1,2 +0,1 @@ | ||
/// <reference types="superagent" /> | ||
import BaseClient from "../connection/BaseClient"; | ||
@@ -8,4 +7,4 @@ import Link from "./Link"; | ||
constructor(client: BaseClient); | ||
createOrUpdate(link: Link): Promise<void | import("superagent").Response>; | ||
unlink(lNugget: string, rNugget: string): Promise<void | import("superagent").Response>; | ||
createOrUpdate(link: Link): Promise<object>; | ||
unlink(lNugget: string, rNugget: string): Promise<object>; | ||
} |
@@ -1,2 +0,1 @@ | ||
/// <reference types="superagent" /> | ||
import Nugget from "./Nugget"; | ||
@@ -15,4 +14,4 @@ import LinkedNugget from "../link/LinkedNugget"; | ||
get(nuggetId: string): Promise<Nugget>; | ||
create(nugget: Nugget): Promise<void | import("superagent").Response>; | ||
update(nugget: Nugget): Promise<void | import("superagent").Response>; | ||
create(nugget: Nugget): Promise<object>; | ||
update(nugget: Nugget): Promise<object>; | ||
getClasses(): Promise<EnumItem[]>; | ||
@@ -19,0 +18,0 @@ nugs?: Record<string, Nugget>; |
{ | ||
"name": "quantum-drive-shaft", | ||
"version": "0.0.18", | ||
"version": "0.0.19", | ||
"description": "Typescript client for Quantum Gearbox", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
28704
40
773