UNPKG

skyflow-node

Version:
298 lines 16.4 kB
"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _Controller_client, _Controller_bearerToken; Object.defineProperty(exports, "__esModule", { value: true }); const validators_1 = require("./utils/validators"); const common_1 = require("./utils/common"); const logs_helper_1 = require("./utils/logs-helper"); const logs_1 = __importDefault(require("./utils/logs")); const common_2 = require("./utils/common"); const Collect_1 = require("./core/Collect"); const Reveal_1 = require("./core/Reveal"); const helpers_1 = require("./utils/helpers"); const jwt_utils_1 = require("./utils/jwt-utils"); const constants_1 = __importDefault(require("./utils/constants")); const SkyflowError_1 = __importDefault(require("./libs/SkyflowError")); const Delete_1 = require("./core/Delete"); class Controller { constructor(client) { _Controller_client.set(this, void 0); _Controller_bearerToken.set(this, ""); __classPrivateFieldSet(this, _Controller_client, client, "f"); (0, logs_helper_1.printLog)(logs_1.default.infoLogs.CONTROLLER_INITIALIZED, common_2.MessageType.LOG); } detokenize(detokenizeInput) { return new Promise((resolve, reject) => { try { (0, validators_1.validateInitConfig)(__classPrivateFieldGet(this, _Controller_client, "f").config); (0, logs_helper_1.printLog)(logs_1.default.infoLogs.VALIDATE_DETOKENIZE_INPUT, common_2.MessageType.LOG); (0, validators_1.validateDetokenizeInput)(detokenizeInput); (0, logs_helper_1.printLog)((0, logs_helper_1.parameterizedString)(logs_1.default.infoLogs.EMIT_REQUEST, common_1.TYPES.DETOKENIZE), common_2.MessageType.LOG); this.getToken().then((res) => { (0, Reveal_1.fetchRecordsByTokenId)(detokenizeInput.records, __classPrivateFieldGet(this, _Controller_client, "f"), res) .then((resolvedResult) => { (0, logs_helper_1.printLog)(logs_1.default.infoLogs.FETCH_RECORDS_RESOLVED, common_2.MessageType.LOG); resolve(resolvedResult); }, (rejectedResult) => { reject(rejectedResult); }); }).catch(err => reject(err)); } catch (e) { if (e instanceof Error) (0, logs_helper_1.printLog)(e.message, common_2.MessageType.ERROR); reject(e); } }); } insert(records, options) { return new Promise((resolve, reject) => { try { (0, validators_1.validateInitConfig)(__classPrivateFieldGet(this, _Controller_client, "f").config); if (options && options.tokens && typeof options.tokens !== 'boolean') { throw new SkyflowError_1.default(constants_1.default.INVALID_TOKENS_IN_INSERT, [], true); } if (options && options.continueOnError && typeof options.continueOnError !== 'boolean') { throw new SkyflowError_1.default(constants_1.default.INVALID_CONTINUE_ON_ERROR_IN_INSERT, [], true); } if (options) { options = Object.assign(Object.assign({}, options), { tokens: (options === null || options === void 0 ? void 0 : options.tokens) !== undefined ? options.tokens : true, continueOnError: (options === null || options === void 0 ? void 0 : options.continueOnError) !== undefined ? options.continueOnError : false }); } else { options = { tokens: true, continueOnError: false }; } if (options === null || options === void 0 ? void 0 : options.upsert) { (0, validators_1.validateUpsertOptions)(options.upsert); } (0, logs_helper_1.printLog)(logs_1.default.infoLogs.VALIDATE_RECORDS, common_2.MessageType.LOG); (0, validators_1.validateInsertRecords)(records); (0, logs_helper_1.printLog)((0, logs_helper_1.parameterizedString)(logs_1.default.infoLogs.EMIT_REQUEST, common_1.TYPES.INSERT), common_2.MessageType.LOG); this.insertData(records, options) .then((result) => { (0, logs_helper_1.printLog)(logs_1.default.infoLogs.INSERT_RECORDS_RESOLVED, common_2.MessageType.LOG); resolve(result); }) .catch((error) => { reject(error); }); } catch (e) { if (e instanceof Error) (0, logs_helper_1.printLog)(e.message, common_2.MessageType.ERROR); reject(e); } }); } getById(getByIdInput) { return new Promise((resolve, reject) => { try { (0, validators_1.validateInitConfig)(__classPrivateFieldGet(this, _Controller_client, "f").config); (0, logs_helper_1.printLog)(logs_1.default.infoLogs.VALIDATE_GET_BY_ID_INPUT, common_2.MessageType.LOG); (0, validators_1.validateGetByIdInput)(getByIdInput); (0, logs_helper_1.printLog)((0, logs_helper_1.parameterizedString)(logs_1.default.infoLogs.EMIT_REQUEST, common_1.TYPES.GET_BY_ID), common_2.MessageType.LOG); this.getToken().then((res) => { (0, Reveal_1.fetchRecordsBySkyflowID)(getByIdInput.records, __classPrivateFieldGet(this, _Controller_client, "f"), res).then((resolvedResult) => { (0, logs_helper_1.printLog)(logs_1.default.infoLogs.GET_BY_SKYFLOWID_RESOLVED, common_2.MessageType.LOG); resolve(resolvedResult); }, (rejectedResult) => { reject(rejectedResult); }); }).catch(err => { reject(err); }); } catch (e) { if (e instanceof Error) (0, logs_helper_1.printLog)(e.message, common_2.MessageType.ERROR); reject(e); } }); } get(getInput, options = {}) { return new Promise((resolve, reject) => { try { (0, validators_1.validateInitConfig)(__classPrivateFieldGet(this, _Controller_client, "f").config); (0, logs_helper_1.printLog)(logs_1.default.infoLogs.VALIDATE_GET_INPUT, common_2.MessageType.LOG); (0, validators_1.validateGetInput)(getInput, options); (0, logs_helper_1.printLog)((0, logs_helper_1.parameterizedString)(logs_1.default.infoLogs.EMIT_REQUEST, common_1.TYPES.GET), common_2.MessageType.LOG); this.getToken().then((res) => { (0, Reveal_1.fetchRecordsBySkyflowID)(getInput.records, __classPrivateFieldGet(this, _Controller_client, "f"), res, options).then((resolvedResult) => { (0, logs_helper_1.printLog)(logs_1.default.infoLogs.GET_BY_SKYFLOWID_RESOLVED, common_2.MessageType.LOG); resolve(resolvedResult); }, (rejectedResult) => { reject(rejectedResult); }); }).catch(err => { reject(err); }); } catch (e) { if (e instanceof Error) (0, logs_helper_1.printLog)(e.message, common_2.MessageType.ERROR); reject(e); } }); } invokeConnection(configuration) { return new Promise((resolve, reject) => { try { (0, logs_helper_1.printLog)(logs_1.default.infoLogs.VALIDATE_CONNECTION_CONFIG, common_2.MessageType.LOG); (0, validators_1.validateConnectionConfig)(configuration); const config = configuration; const filledUrl = (0, helpers_1.fillUrlWithPathAndQueryParams)(config.connectionURL, config.pathParams, config.queryParams); config.connectionURL = filledUrl; (0, logs_helper_1.printLog)((0, logs_helper_1.parameterizedString)(logs_1.default.infoLogs.EMIT_REQUEST, common_1.TYPES.INVOKE_CONNECTION), common_2.MessageType.LOG); this.sendInvokeConnectionRequest(config).then((resultResponse) => { (0, logs_helper_1.printLog)(logs_1.default.infoLogs.SEND_INVOKE_CONNECTION_RESOLVED, common_2.MessageType.LOG); resolve(resultResponse); }).catch((rejectedResponse) => { (0, logs_helper_1.printLog)(logs_1.default.errorLogs.SEND_INVOKE_CONNECTION_REJECTED, common_2.MessageType.ERROR); reject({ error: rejectedResponse }); }); } catch (error) { if (error instanceof Error) (0, logs_helper_1.printLog)(error.message, common_2.MessageType.ERROR); reject(error); } }); } update(updateInput, options) { return new Promise((resolve, reject) => { try { (0, validators_1.validateInitConfig)(__classPrivateFieldGet(this, _Controller_client, "f").config); if (options && options.tokens && typeof options.tokens !== 'boolean') { throw new SkyflowError_1.default(constants_1.default.INVALID_TOKENS_IN_UPDATE); } if (options) { options = Object.assign(Object.assign({}, options), { tokens: (options === null || options === void 0 ? void 0 : options.tokens) !== undefined ? options.tokens : true }); } else { options = { tokens: true, }; } (0, validators_1.validateUpdateInput)(updateInput); this.getToken().then((authToken) => { (0, Reveal_1.updateRecordsBySkyflowID)(updateInput.records, options, __classPrivateFieldGet(this, _Controller_client, "f"), authToken) .then((response) => { (0, logs_helper_1.printLog)(logs_1.default.infoLogs.UPDATE_REQUEST_RESOLVED, common_2.MessageType.LOG); resolve(response); }).catch((error) => { (0, logs_helper_1.printLog)(logs_1.default.errorLogs.UPDATE_REQUEST_REJECTED, common_2.MessageType.ERROR); reject(error); }); }).catch((err) => { reject(err); }); } catch (error) { if (error instanceof Error) (0, logs_helper_1.printLog)(error.message, common_2.MessageType.ERROR); reject(error); } }); } delete(deleteInput, options) { return new Promise((resolve, reject) => { try { (0, validators_1.validateInitConfig)(__classPrivateFieldGet(this, _Controller_client, "f").config); (0, validators_1.validateDeleteInputAndOptions)(deleteInput, options); this.getToken().then((authToken) => { (0, Delete_1.deleteRecordsBySkyflowID)(deleteInput.records, options = {}, __classPrivateFieldGet(this, _Controller_client, "f"), authToken) .then((response) => { (0, logs_helper_1.printLog)(logs_1.default.infoLogs.DELETE_REQUEST_RESOLVED, common_2.MessageType.LOG); resolve(response); }).catch((error) => { (0, logs_helper_1.printLog)(logs_1.default.errorLogs.DELETE_REQUEST_REJECTED, common_2.MessageType.ERROR); reject(error); }); }).catch((err) => { reject(err); }); } catch (error) { if (error instanceof Error) (0, logs_helper_1.printLog)(error.message, common_2.MessageType.ERROR); reject(error); } }); } insertData(records, options) { const requestBody = (0, Collect_1.constructInsertRecordRequest)(records, options); return new Promise((rootResolve, rootReject) => { this.getToken().then((res) => { __classPrivateFieldGet(this, _Controller_client, "f") .request({ body: Object.assign({}, requestBody), requestMethod: 'POST', url: `${__classPrivateFieldGet(this, _Controller_client, "f").config.vaultURL}/v1/vaults/${__classPrivateFieldGet(this, _Controller_client, "f").config.vaultID}`, headers: { Authorization: `Bearer ${res}`, 'content-type': 'application/json', }, }) .then((response) => { rootResolve((0, Collect_1.constructInsertRecordResponse)(response, options, records.records)); }) .catch((error) => { rootReject(error); }); }).catch(err => { rootReject(err); }); }); } sendInvokeConnectionRequest(config) { return new Promise((rootResolve, rootReject) => { this.getToken().then((res) => { const invokeRequest = __classPrivateFieldGet(this, _Controller_client, "f").request({ url: config.connectionURL, requestMethod: config.methodName, body: config.requestBody, headers: Object.assign({ 'x-skyflow-authorization': res, 'content-type': common_1.ContentType.APPLICATIONORJSON }, (0, helpers_1.toLowerKeys)(config.requestHeader)), }); invokeRequest.then((response) => { rootResolve(response.data); }).catch((err) => { rootReject({ errors: [err] }); }); }).catch(err => { rootReject(err); }); }); } getToken() { return new Promise((resolve, reject) => { if ((0, jwt_utils_1.isTokenValid)(__classPrivateFieldGet(this, _Controller_bearerToken, "f"))) { resolve(__classPrivateFieldGet(this, _Controller_bearerToken, "f")); } else { __classPrivateFieldGet(this, _Controller_client, "f").config.getBearerToken().then((authToken) => { if ((0, jwt_utils_1.isTokenValid)(authToken)) { resolve(authToken); } else { reject(new SkyflowError_1.default(constants_1.default.INVALID_BEARER_TOKEN)); } }).catch((err) => { reject(err); }); } }); } } _Controller_client = new WeakMap(), _Controller_bearerToken = new WeakMap(); exports.default = Controller; //# sourceMappingURL=Controller.js.map