cobinhood-rx
Version:
CobinhoodRx is a rxjs node wrapper for the CobinhoodRx Api.
32 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const rxjs_1 = require("rxjs");
const node_fetch_1 = require("node-fetch");
const Model_1 = require("../Model");
const Enum_1 = require("../Enum");
const Logger_1 = require("../Helpers/Logger");
class HttpClient {
request(url, options) {
return this._request(url, options);
}
_request(url, options = {}) {
const response = new Model_1.ApiResponse();
Logger_1.Logger.Stream.write(Enum_1.LogTypeValue.Debug, `Request URL: ${JSON.stringify(options)}`);
const promise = node_fetch_1.default(url, options)
.then(res => {
return res.json()
.then((json) => {
const semiProcessedResponse = Object.assign(response, json);
Logger_1.Logger.Stream.write(Enum_1.LogTypeValue.Debug, `Response: ${JSON.stringify(semiProcessedResponse)}`);
return semiProcessedResponse;
});
});
promise.catch(error => {
Logger_1.Logger.Stream.write(Enum_1.LogTypeValue.Error, `HTTP Request Failed. URL: ${url}`);
return rxjs_1.Observable.throw(error);
});
return rxjs_1.Observable.fromPromise(promise);
}
}
exports.HttpClient = HttpClient;
//# sourceMappingURL=HttpClient.js.map