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

389 lines 18.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SysEntityAppArea = exports.SysEntitySyncLog = exports.SysEntityJoinUser = exports.SysEntityApiKey = exports.SysEntityApp = exports.SysEntityRole = exports.SysEntityUser = exports.SystemEntityQuery = exports.SyncLogDirections = exports.SyncLogStatuses = exports.SyncLogPacketTypes = void 0; const tslib_1 = require("tslib"); const dms_api_wrapper_1 = require("../platform-web/dms-api-wrapper"); const app_service_app_1 = require("./app-service-app"); const application_context_service_1 = require("./application-context-service"); const dms_root_container_1 = require("../ioc/dms-root-container"); const dms_platform_bridge_factory_1 = require("../platform/dms-platform-bridge-factory"); const backendServiceName = 'SystemEntityQuery'; var SystemEntityTypes; (function (SystemEntityTypes) { SystemEntityTypes[SystemEntityTypes["User"] = 0] = "User"; SystemEntityTypes[SystemEntityTypes["Role"] = 1] = "Role"; SystemEntityTypes[SystemEntityTypes["App"] = 2] = "App"; SystemEntityTypes[SystemEntityTypes["EventLog"] = 3] = "EventLog"; SystemEntityTypes[SystemEntityTypes["ApiKey"] = 4] = "ApiKey"; SystemEntityTypes[SystemEntityTypes["JoinUser"] = 5] = "JoinUser"; SystemEntityTypes[SystemEntityTypes["SyncLog"] = 6] = "SyncLog"; SystemEntityTypes[SystemEntityTypes["AppArea"] = 7] = "AppArea"; })(SystemEntityTypes || (SystemEntityTypes = {})); exports.SyncLogPacketTypes = { Data: 0, DrPush: 1, }; exports.SyncLogStatuses = { Created: 9999, Pending: 0, Success: 1, InProgress: 2, Error: 3, Failure: 4, Debug: 5, //not processes by the system }; exports.SyncLogDirections = { Push: 0, Pull: 1, // pull from ERP }; class SysEntity { } class SystemEntityQuery extends app_service_app_1.CoreAppService { constructor(sysEntityType, dms, customAuthToken) { super(dms, customAuthToken); this.sysEntityType = sysEntityType; this.dms = dms; this.customAuthToken = customAuthToken; this.pk = null; } getSystemEntityName() { switch (this.sysEntityType) { case SystemEntityTypes.User: return 'User'; case SystemEntityTypes.Role: return 'Role'; case SystemEntityTypes.App: return 'App'; case SystemEntityTypes.ApiKey: return 'ApiKey'; case SystemEntityTypes.JoinUser: return 'JoinUser'; case SystemEntityTypes.SyncLog: return 'SyncLog'; case SystemEntityTypes.AppArea: return 'AppArea'; default: throw 'Uknown system entity type'; } } filter(pk) { this.pk = pk; } executeSelect() { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (this.sysEntityType == SystemEntityTypes.JoinUser) throw 'Method SystemEntityQuery.executeSelect does not support JoinUser entity'; const me = this; if (typeof window === 'undefined') { return this.dms.iocInstances[backendServiceName].instance.executeSelect(this.sysEntityType, this.pk, this.filter); } else { const token = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getSessionKey", null); const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getApparea", null); if (this.sysEntityType == SystemEntityTypes.ApiKey) { return new Promise((resolve, reject) => { let apiUrl = dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl + "/core/security/apikey"; $.ajax({ type: "GET", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, contentType: "application/json" }).done(function (data) { const entity = new SysEntityApiKey(); entity.apiKey = data.message; resolve([entity]); }).fail(function (err) { reject(err); }); }); } else { let pk = this.pk; return new Promise((resolve, reject) => { let apiUrl = dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl + "/storage/sysentity/" + this.getSystemEntityName(); if (pk && typeof (pk) == 'object') { let keys = Object.getOwnPropertyNames(pk); if (keys.length == 1 && typeof (pk[keys[0]]) == 'object') { apiUrl += '/' + keys[0]; pk = pk[keys[0]]; } keys = []; for (let key in pk) { keys.push(key + "=" + pk[key]); } apiUrl += "?" + keys.join("&"); } else if (pk) { apiUrl += '/' + pk; } $.ajax({ type: "GET", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, contentType: "application/json" }).done(function (data) { if (me.sysEntityType == SystemEntityTypes.App) { resolve(data.filter(app => app.system == false)); } else { resolve(data); } }).fail(function (err) { reject(err); }); }); } } }); } executeDelete(entity) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (typeof window === 'undefined') { return this.dms.iocInstances[backendServiceName].instance.executeDelete(this.sysEntityType, entity, this.pk); } else { const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getApparea", null); const token = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getSessionKey", null); if (this.sysEntityType == SystemEntityTypes.ApiKey) { return new Promise((resolve, reject) => { let apiUrl = dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl + "/core/security/apikey"; $.ajax({ type: "DELETE", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, contentType: "application/json" }).done(function (data) { resolve(data.message); }).fail(function (err) { reject(err); }); }); } else { let pk = this.pk; return new Promise((resolve, reject) => { let apiUrl = `${dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl}/storage/sysentity/${this.getSystemEntityName()}/null/funcs/delete`; if (pk && typeof (pk) == 'object') { let keys = Object.getOwnPropertyNames(pk); if (keys.length == 1 && typeof (pk[keys[0]]) == 'object') { apiUrl += '/' + keys[0]; pk = pk[keys[0]]; } keys = []; for (let key in pk) { keys.push(key + "=" + pk[key]); } apiUrl += "?" + keys.join("&"); } else if (pk) { apiUrl += '/' + pk; } $.ajax({ type: "POST", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, contentType: "application/json", data: (entity ? JSON.stringify(entity) : undefined) }).done(function (data) { resolve(data); }).fail(function (err) { reject(err); }); }); } } }); } executeCreate(entity) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (typeof window === 'undefined') { return this.dms.iocInstances[backendServiceName].instance.executeCreate(this.sysEntityType, entity, this.pk); } else { const token = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getSessionKey", null); const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getApparea", null); if (this.sysEntityType == SystemEntityTypes.ApiKey) { return new Promise((resolve, reject) => { let apiUrl = dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl + "/core/security/apikey"; $.ajax({ type: "POST", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, contentType: "application/json" }).done(function (data) { resolve(data.message); }).fail(function (err) { reject(err); }); }); } else { return new Promise((resolve, reject) => { let apiUrl = `${dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl}/storage/sysentity/${this.getSystemEntityName()}/null/funcs/create`; $.ajax({ type: "POST", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, data: (entity ? JSON.stringify(entity) : undefined), contentType: "application/json" }).done(function (data) { resolve(data); }).fail(function (err) { reject(err); }); }); } } }); } executeUpdate(entity) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (typeof window === 'undefined') { return this.dms.iocInstances[backendServiceName].instance.executeUpdate(this.sysEntityType, entity, this.pk); } else { const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getApparea", null); const token = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(this.dms).execute("getSessionKey", null); if (this.sysEntityType == SystemEntityTypes.ApiKey) { throw 'SysEntityApiKey does not support update operation'; } else { return new Promise((resolve, reject) => { let apiUrl = `${dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl}/storage/sysentity/${this.getSystemEntityName()}/null/funcs/update`; $.ajax({ type: "POST", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, data: (entity ? JSON.stringify(entity) : undefined), contentType: "application/json" }).done(function (data) { resolve(data); }).fail(function (err) { reject(err); }); }); } } }); } } exports.SystemEntityQuery = SystemEntityQuery; class SysEntityUser extends SysEntity { static query() { const dm = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); return new SystemEntityQuery(SystemEntityTypes.User, dm, null); } static create() { const q = SysEntityUser.query(); return q.executeCreate(this); } delete() { const q = SysEntityUser.query(); return q.executeDelete(this); } signOut() { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (!this.confirmed) throw 'User is not confirmed and can not be signed out!'; const dms = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(dms).execute("getApparea", null); const token = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(dms).execute("getSessionKey", null); return new Promise((resolve, reject) => { let apiUrl = `${dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl}/storage/sysentity/User/null/funcs/logout`; $.ajax({ type: "POST", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, data: JSON.stringify(this), contentType: "application/json" }).done(function (data) { resolve(data); }).fail(function (err) { let msg = { message: ((err.xhr && err.xhr.responseText) ? err.xhr.responseText : err.message), statusCode: ((err.xhr && err.xhr.statusCode) ? err.xhr.statusCode : 407) }; reject(msg); }); }); }); } resetPassword(forced, forcePassword) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (!this.confirmed && !forced) throw 'User is not confirmed!Password can not be reset.'; const dms = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); const appArea = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(dms).execute("getApparea", null); const token = yield (0, dms_platform_bridge_factory_1.PlatformBridgeFactory)(dms).execute("getSessionKey", null); if (forcePassword) { this.forcePassword = forcePassword; } return new Promise((resolve, reject) => { let apiUrl = `${dms_api_wrapper_1.DmsAPIWrapper._baseAPIUrl}/storage/sysentity/User/null/funcs/resetpassword`; $.ajax({ type: "POST", headers: { "Authorization": `apparea:${appArea};${token}` }, url: apiUrl, data: JSON.stringify(this), contentType: "application/json" }).done(function (data) { resolve(data); }).fail(function (err) { let msg = { message: ((err.xhr && err.xhr.responseText) ? err.xhr.responseText : err.message), statusCode: ((err.xhr && err.xhr.statusCode) ? err.xhr.statusCode : 407) }; reject(msg); }); }); }); } } exports.SysEntityUser = SysEntityUser; class SysEntityRole extends SysEntity { static query() { const dm = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); return new SystemEntityQuery(SystemEntityTypes.Role, dm, null); } } exports.SysEntityRole = SysEntityRole; class SysEntityApp extends SysEntity { static query() { const dm = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); return new SystemEntityQuery(SystemEntityTypes.App, dm, null); } } exports.SysEntityApp = SysEntityApp; class SysEntityApiKey extends SysEntity { static query() { const dm = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); return new SystemEntityQuery(SystemEntityTypes.ApiKey, dm, null); } } exports.SysEntityApiKey = SysEntityApiKey; class SysEntityJoinUser extends SysEntity { static query() { const dm = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); return new SystemEntityQuery(SystemEntityTypes.JoinUser, dm, null); } } exports.SysEntityJoinUser = SysEntityJoinUser; class SysEntitySyncLog extends SysEntity { static query() { const dm = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); return new SystemEntityQuery(SystemEntityTypes.SyncLog, dm, null); } } exports.SysEntitySyncLog = SysEntitySyncLog; class SysEntityAppArea extends SysEntity { static query() { const dm = dms_root_container_1.RootDIContainer.inject(application_context_service_1.DmsApplicationService); return new SystemEntityQuery(SystemEntityTypes.AppArea, dm, null); } } exports.SysEntityAppArea = SysEntityAppArea; //# sourceMappingURL=system-entity-query.js.map