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
JavaScript
;
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