@studyportals/sp-hs-misc
Version:
Miscellaneous code used in HouseStark's projects
269 lines (244 loc) • 11.7 kB
JavaScript
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function (resolve) {
resolve(value);
});
}
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
function rejected(value) {
try {
step(generator["throw"](value));
} catch (e) {
reject(e);
}
}
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
//# sourceMappingURL=service-layer-client.class.js.map
var ServiceLayerClient = function () {
_createClass(ServiceLayerClient, [{
key: "baseServiceLayerUrl",
get: function get() {
return this._baseServiceLayerUrl;
}
}, {
key: "maximumRetries",
get: function get() {
return this._maximumRetries;
}
}, {
key: "getRequestsSender",
get: function get() {
return this._getRequestsSender;
}
}, {
key: "getCachedRequestsSender",
get: function get() {
return this._getCachedRequestsSender;
}
}, {
key: "getResilientRequestsSender",
get: function get() {
return this._resilientRequestsSender;
}
}]);
function ServiceLayerClient(superAgentRequestsFactory) {
var baseServiceLayerUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
var maximumRetries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
var userAgent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "Studyportals-HouseStark-Misc/1.0";
_classCallCheck(this, ServiceLayerClient);
this.superAgentRequestsFactory = superAgentRequestsFactory;
this._baseServiceLayerUrl = baseServiceLayerUrl;
this._userAgent = userAgent;
this._maximumRetries = maximumRetries;
this.initializeRequestsSenders();
}
_createClass(ServiceLayerClient, [{
key: "get",
value: function get(path) {
var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
var request, header;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
request = this.createGetRequest(path);
for (header in headers) {
if (headers.hasOwnProperty(header)) {
request.set(header, headers[header]);
}
}
request.set("Cache-Control", "no-cache");
return _context.abrupt("return", this.getRequestsSender.send(request));
case 4:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
}
}, {
key: "getCached",
value: function getCached(path) {
var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "json";
var request = this.createGetRequest(path, type);
for (var header in headers) {
if (headers.hasOwnProperty(header)) {
request.set(header, headers[header]);
}
}
return this.getCachedRequestsSender.send(request);
}
}, {
key: "post",
value: function post(path, data) {
var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "json";
return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
var request, header;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
request = this.createPostRequest(path, data, type);
for (header in headers) {
if (headers.hasOwnProperty(header)) {
request.set(header, headers[header]);
}
}
return _context2.abrupt("return", this.getResilientRequestsSender.send(request));
case 3:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
}
}, {
key: "put",
value: function put(path, data) {
var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "json";
return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
var request, header;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
request = this.createPutRequest(path, data, type);
for (header in headers) {
if (headers.hasOwnProperty(header)) {
request.set(header, headers[header]);
}
}
return _context3.abrupt("return", this.getResilientRequestsSender.send(request));
case 3:
case "end":
return _context3.stop();
}
}
}, _callee3, this);
}));
}
}, {
key: "delete",
value: function _delete(path) {
var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "json";
return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
var request, header;
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
request = this.createDeleteRequest(path, type);
for (header in headers) {
if (headers.hasOwnProperty(header)) {
request.set(header, headers[header]);
}
}
return _context4.abrupt("return", this.getResilientRequestsSender.send(request));
case 3:
case "end":
return _context4.stop();
}
}
}, _callee4, this);
}));
}
}, {
key: "createGetRequest",
value: function createGetRequest(path) {
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "json";
var request = this.superAgentRequestsFactory.get(this.buildUrl(path));
request.set("Accept-Language", "en-GB");
request.type(type);
return request;
}
}, {
key: "createPostRequest",
value: function createPostRequest(path, data) {
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "json";
var request = this.superAgentRequestsFactory.post(this.buildUrl(path));
request.send(data);
request.set("Accept-Language", "en-GB");
request.type(type);
return request;
}
}, {
key: "createPutRequest",
value: function createPutRequest(path, data) {
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "json";
var request = this.superAgentRequestsFactory.put(this.buildUrl(path));
request.send(data);
request.set("Accept-Language", "en-GB");
request.type(type);
return request;
}
}, {
key: "createDeleteRequest",
value: function createDeleteRequest(path) {
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "json";
var request = this.superAgentRequestsFactory.delete(this.buildUrl(path));
request.set("Accept-Language", "en-GB");
request.type(type);
return request;
}
}, {
key: "buildUrl",
value: function buildUrl(path) {
return "" + this.baseServiceLayerUrl + path;
}
}, {
key: "initializeRequestsSenders",
value: function initializeRequestsSenders() {
this._getCachedRequestsSender = new ResilientServiceLayerRequestsSenderDecorator(new ServiceLayerRequestsSender({
userAgent: this._userAgent
}), this.maximumRetries);
this._getRequestsSender = new ResilientServiceLayerRequestsSenderDecorator(new ServiceLayerRequestsSender({
userAgent: this._userAgent
}), this.maximumRetries);
this._resilientRequestsSender = new ResilientServiceLayerRequestsSenderDecorator(new ServiceLayerRequestsSender({
userAgent: this._userAgent
}), this.maximumRetries);
}
}]);
return ServiceLayerClient;
}();