skyflow-node
Version:
Skyflow SDK for Node.js
298 lines • 16.4 kB
JavaScript
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
;