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