UNPKG

dynamicsmobile

Version:

Allows development of off-line mobile and web business apps over the Dynamics Mobile platform. More info on https://www.dynamicsmobile.com

128 lines 6.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.KeyValueService = void 0; const tslib_1 = require("tslib"); const injectable_1 = require("../ioc/injectable"); const dms_platform_bridge_factory_1 = require("../platform/dms-platform-bridge-factory"); const app_service_app_1 = require("./app-service-app"); const dms_api_wrapper_1 = require("../platform-web/dms-api-wrapper"); const application_context_service_1 = require("./application-context-service"); let KeyValueService = exports.KeyValueService = class KeyValueService extends app_service_app_1.CoreAppService { constructor(dms) { super(dms, null); } getKey(key) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (!key) { throw new Error('Key is required'); } yield this.checkNetworkStatus(); let authToken = this.customAuthToken; if (!authToken) { authToken = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getSessionKey", null); } let url = `${dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl}/livelink/keyvalue/${key}`; try { const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getApparea", null); let response = yield dms_api_wrapper_1.DmsAPIWrapper.executeApiRequest(appArea, url, 'GET', authToken, 'application/json'); response = (response && response.data) ? response.data : response; const parsedResponse = typeof response == 'string' ? JSON.parse(response) : response; if (parsedResponse && parsedResponse.value) { return parsedResponse.value; } else if (parsedResponse && parsedResponse.data) { if (parsedResponse.data.value) { return parsedResponse.data.value; } else { return parsedResponse.data; } } else { return parsedResponse; } } catch (err) { this.processApiError(err); } }); } setKey(keys) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (!keys) { throw new Error('Keys are required'); } //check for at least one property if (Object.keys(keys).length == 0) { throw new Error('Keys are required'); } yield this.checkNetworkStatus(); let authToken = this.customAuthToken; if (!authToken) { authToken = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getSessionKey", null); } let url = `${dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl}/livelink/keyvalue`; try { const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getApparea", null); let response = yield dms_api_wrapper_1.DmsAPIWrapper.executeApiRequest(appArea, url, 'POST', authToken, 'application/json', keys); response = (response && response.data) ? response.data : response; const parsedResponse = typeof response == 'string' ? JSON.parse(response) : response; if (parsedResponse && parsedResponse.value) { return parsedResponse.value; } else if (parsedResponse && parsedResponse.data) { if (parsedResponse.data.value) { return parsedResponse.data.value; } else { return parsedResponse.data; } } else { return parsedResponse; } } catch (err) { this.processApiError(err); } }); } getAllKeys(prefix) { return tslib_1.__awaiter(this, void 0, void 0, function* () { yield this.checkNetworkStatus(); let authToken = this.customAuthToken; if (!authToken) { authToken = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getSessionKey", null); } let url = `${dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl}/livelink/keyvalue${prefix ? `?prefix=${prefix}` : ''}`; try { const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getApparea", null); let response = yield dms_api_wrapper_1.DmsAPIWrapper.executeApiRequest(appArea, url, 'GET', authToken, 'application/json'); response = (response && response.data) ? response.data : response; const parsedResponse = typeof response == 'string' ? JSON.parse(response) : response; if (parsedResponse && parsedResponse.value) { return parsedResponse.value; } else if (parsedResponse && parsedResponse.data) { if (parsedResponse.data.value) { return parsedResponse.data.value; } else { return parsedResponse.data; } } else { return parsedResponse; } } catch (err) { this.processApiError(err); } }); } }; exports.KeyValueService = KeyValueService = tslib_1.__decorate([ (0, injectable_1.Injectable)(), tslib_1.__metadata("design:paramtypes", [application_context_service_1.DmsApplicationService]) ], KeyValueService); //# sourceMappingURL=keyvalue-service.js.map