@openinc/parse-server-opendash 2.4.54 → 2.4.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/featuremap.json +4 -3
  2. package/dist/functions/openinc-deregister-permission.d.ts +5 -0
  3. package/dist/functions/openinc-deregister-permission.js +61 -0
  4. package/dist/functions/openinc-register-permission.d.ts +10 -0
  5. package/dist/functions/openinc-register-permission.js +51 -0
  6. package/dist/helper/removeShorltyPreviousEntry.d.ts +2 -0
  7. package/dist/helper/removeShorltyPreviousEntry.js +23 -0
  8. package/dist/hooks/{Maintenance_Article.js → Knowledge_Chat.js} +2 -2
  9. package/dist/hooks/Knowledge_ChatMessage.d.ts +1 -0
  10. package/dist/hooks/Knowledge_ChatMessage.js +17 -0
  11. package/dist/hooks/Maintenance_Downtime.js +16 -2
  12. package/dist/hooks/Maintenance_Duedate.js +16 -1
  13. package/dist/hooks/Maintenance_Frequency.js +16 -1
  14. package/dist/hooks/Maintenance_Priority.js +16 -2
  15. package/dist/hooks/Maintenance_Restriction.js +16 -1
  16. package/dist/hooks/Maintenance_Ticket_Assignment.d.ts +1 -0
  17. package/dist/hooks/Maintenance_Ticket_Assignment.js +17 -0
  18. package/dist/hooks/Maintenance_Ticket_Issuecategory.js +16 -2
  19. package/dist/hooks/Maintenance_Ticket_Kanban_State.js +24 -7
  20. package/dist/hooks/Maintenance_Ticket_Source.js +16 -0
  21. package/dist/hooks/Maintenance_Ticket_Title.d.ts +1 -0
  22. package/dist/hooks/Maintenance_Ticket_Title.js +33 -0
  23. package/dist/types/Maintenance_Schedule_Execution_Step.d.ts +0 -4
  24. package/dist/types/Maintenance_Schedule_Execution_Step.js +0 -6
  25. package/dist/types/Maintenance_Schedule_Step.d.ts +0 -4
  26. package/dist/types/Maintenance_Schedule_Step.js +0 -6
  27. package/dist/types/Maintenance_Ticket.d.ts +0 -3
  28. package/dist/types/Maintenance_Ticket.js +0 -3
  29. package/dist/types/Maintenance_Ticket_Assignment.d.ts +32 -0
  30. package/dist/types/Maintenance_Ticket_Assignment.js +47 -0
  31. package/dist/types/Maintenance_Ticket_Title.d.ts +25 -0
  32. package/dist/types/Maintenance_Ticket_Title.js +35 -0
  33. package/dist/types/index.d.ts +4 -2
  34. package/dist/types/index.js +6 -4
  35. package/package.json +4 -2
  36. package/schema/Maintenance_Schedule_Execution_Step.json +0 -5
  37. package/schema/Maintenance_Schedule_Step.json +0 -5
  38. package/schema/Maintenance_Ticket.json +0 -5
  39. package/schema/{Maintenance_Article.json → Maintenance_Ticket_Assignment.json} +20 -17
  40. package/schema/Maintenance_Ticket_Title.json +49 -0
  41. package/dist/types/Maintenance_Article.d.ts +0 -31
  42. package/dist/types/Maintenance_Article.js +0 -44
  43. /package/dist/hooks/{Maintenance_Article.d.ts → Knowledge_Chat.d.ts} +0 -0
@@ -15,6 +15,7 @@
15
15
  "OD3_Core_Email": "CORE",
16
16
  "OD3_Core_Token": "CORE",
17
17
  "OD3_Dashboard": "MONITORING",
18
+ "OD3_Group": "CORE",
18
19
  "OD3_GTFS_Agency": "GTFS",
19
20
  "OD3_GTFS_Bikes_Allowed": "GTFS",
20
21
  "OD3_GTFS_Calendar": "GTFS",
@@ -28,7 +29,6 @@
28
29
  "OD3_GTFS_Trip": "GTFS",
29
30
  "OD3_GTFS_Wheelchair_Accessible": "GTFS",
30
31
  "OD3_GTFS_Wheelchair_Boarding": "GTFS",
31
- "OD3_Group": "CORE",
32
32
  "OD3_Knowledge_Article": "KNOWLEDGE",
33
33
  "OD3_Knowledge_Category": "KNOWLEDGE",
34
34
  "OD3_Knowledge_Chat": "KNOWLEDGE",
@@ -38,9 +38,7 @@
38
38
  "OD3_Knowledge_Video": "KNOWLEDGE",
39
39
  "OD3_Language": "CORE",
40
40
  "OD3_Log": "CORE",
41
- "OD3_MIAAS_MDSEndpoint": "MIAAS",
42
41
  "OD3_MailTemplate": "MONITORING",
43
- "OD3_Maintenance_Article": "MAINTENANCE",
44
42
  "OD3_Maintenance_DailySchedule": "MAINTENANCE",
45
43
  "OD3_Maintenance_Downtime": "MAINTENANCE",
46
44
  "OD3_Maintenance_Duedate": "MAINTENANCE",
@@ -62,10 +60,13 @@
62
60
  "OD3_Maintenance_SourceMeta": "MAINTENANCE",
63
61
  "OD3_Maintenance_Source_File": "MAINTENANCE",
64
62
  "OD3_Maintenance_Ticket": "MAINTENANCE",
63
+ "OD3_Maintenance_Ticket_Assignment": "MAINTENANCE",
65
64
  "OD3_Maintenance_Ticket_Issuecategory": "MAINTENANCE",
66
65
  "OD3_Maintenance_Ticket_Kanban_State": "MAINTENANCE",
67
66
  "OD3_Maintenance_Ticket_Kanban_State_Current": "MAINTENANCE",
68
67
  "OD3_Maintenance_Ticket_Source": "MAINTENANCE",
68
+ "OD3_Maintenance_Ticket_Title": "MAINTENANCE",
69
+ "OD3_MIAAS_MDSEndpoint": "MIAAS",
69
70
  "OD3_Monitoring_DataHierachies": "MONITORING",
70
71
  "OD3_Monitoring_Jobs": "MONITORING",
71
72
  "OD3_Monitoring_ReportImage": "MONITORING",
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This function deregisters a permission in the database on a tenant level.
3
+ * @param name The function name derived from the file name
4
+ */
5
+ export declare function init(name: string): Promise<void>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const types_1 = require("../types");
5
+ /**
6
+ * This function deregisters a permission in the database on a tenant level.
7
+ * @param name The function name derived from the file name
8
+ */
9
+ async function init(name) {
10
+ Parse.Cloud.define(name, async function (request) {
11
+ if (typeof request.user === "undefined") {
12
+ return { success: false, error: "User is not provided." };
13
+ }
14
+ //Get the current user
15
+ const user = request.user;
16
+ if (!user) {
17
+ return { success: false, error: "User is required." };
18
+ }
19
+ //Get the tenant of the current user
20
+ const tenant = user.get("tenant");
21
+ const permissionKey = request.params.permissionKey;
22
+ if (!permissionKey) {
23
+ return { success: false, error: "Permission key is required." };
24
+ }
25
+ //Find the permission with key permissionKey and delete it
26
+ const permissions = await new Parse.Query(types_1.Permission)
27
+ .equalTo("key", permissionKey)
28
+ .equalTo("tenant", tenant)
29
+ .find({ useMasterKey: true });
30
+ const role = await new Parse.Query(Parse.Role)
31
+ .equalTo("name", "od-tenant-admin-" + tenant.id)
32
+ .first({ useMasterKey: true });
33
+ // Check if the permission can be written publically or by the current user or the tenant role
34
+ const filteredpermissions = permissions.filter((permission) => {
35
+ const acl = permission.getACL();
36
+ return acl?.getPublicWriteAccess() ||
37
+ acl?.getWriteAccess(user.id) ||
38
+ typeof role !== "undefined"
39
+ ? acl?.getRoleWriteAccess(role)
40
+ : false;
41
+ });
42
+ if (permissions.length === 0) {
43
+ console.info(`Permissions with key ${permissionKey} not found.`);
44
+ }
45
+ else {
46
+ console.info(`Permission with key ${permissionKey} found. Deleting...`);
47
+ for await (const permission of filteredpermissions) {
48
+ await permission.destroy({ useMasterKey: true });
49
+ }
50
+ }
51
+ return { success: true };
52
+ }, {
53
+ requireUser: true,
54
+ fields: {
55
+ permissionKey: {
56
+ required: true,
57
+ type: String,
58
+ },
59
+ },
60
+ });
61
+ }
@@ -0,0 +1,10 @@
1
+ export interface PermissionInterface {
2
+ label: string;
3
+ description: string;
4
+ key: string;
5
+ }
6
+ /**
7
+ * This function registers a new permission in the database on a tenant level.
8
+ * @param name The function name derived from the file name
9
+ */
10
+ export declare function init(name: string): Promise<void>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const types_1 = require("../types");
5
+ /**
6
+ * This function registers a new permission in the database on a tenant level.
7
+ * @param name The function name derived from the file name
8
+ */
9
+ async function init(name) {
10
+ Parse.Cloud.define(name, async function (request) {
11
+ if (typeof request.user === "undefined") {
12
+ return { success: false, error: "User is not provided." };
13
+ }
14
+ //Get the current user
15
+ const user = request.user;
16
+ if (!user) {
17
+ return { success: false, error: "User is required." };
18
+ }
19
+ //Get the tenant of the current user
20
+ const tenant = user.get("tenant");
21
+ const permission = request.params
22
+ .permission;
23
+ //Check if the Permission with key already exists
24
+ const existingpermission = await new Parse.Query(types_1.Permission)
25
+ .equalTo("key", permission.key)
26
+ .equalTo("tenant", tenant)
27
+ .find({ useMasterKey: true });
28
+ //If the permission does not exist, create it
29
+ if (existingpermission.length === 0) {
30
+ console.log(`Permission with key ${permission.key} does not exist. Will be created.`);
31
+ const newPermission = new types_1.Permission();
32
+ newPermission.set("label", permission.label);
33
+ newPermission.set("description", permission.description);
34
+ newPermission.set("key", permission.key);
35
+ newPermission.set("tenant", tenant);
36
+ await newPermission.save({}, { useMasterKey: true });
37
+ }
38
+ else {
39
+ console.log(`Permission with key ${permission.key} already exists. Continue.`);
40
+ }
41
+ return { success: true };
42
+ }, {
43
+ requireUser: true,
44
+ fields: {
45
+ permission: {
46
+ required: true,
47
+ type: Object,
48
+ },
49
+ },
50
+ });
51
+ }
@@ -0,0 +1,2 @@
1
+ export declare function removeShortlyPreviousEntry<T extends Parse.Object>(entry: T, onQuery: (query: Parse.Query<T>) => Parse.Query<T>, overrideTime?: number): Promise<void>;
2
+ export declare function removeEqualSaved<T extends Parse.Object>(entry: T, onQuery: (query: Parse.Query<T>) => Parse.Query<T>, isEqual: (frist: T, second: T) => boolean): Promise<T>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeShortlyPreviousEntry = removeShortlyPreviousEntry;
4
+ exports.removeEqualSaved = removeEqualSaved;
5
+ async function removeShortlyPreviousEntry(entry, onQuery, overrideTime = 300) {
6
+ const query = onQuery(new Parse.Query(entry.className));
7
+ const object = await query.first({ useMasterKey: true });
8
+ const lastEntryTime = object?.get("createdAt")?.getTime();
9
+ const currentTime = new Date().getTime();
10
+ const timeDifferenceInSeconds = (currentTime - lastEntryTime) / 1000;
11
+ if (timeDifferenceInSeconds <= overrideTime) {
12
+ await object?.destroy({ useMasterKey: true });
13
+ }
14
+ }
15
+ async function removeEqualSaved(entry, onQuery, isEqual) {
16
+ const query = onQuery(new Parse.Query(entry.className));
17
+ const object = await query.first({ useMasterKey: true });
18
+ if (object && isEqual(entry, object)) {
19
+ await entry.destroy({ useMasterKey: true });
20
+ return object;
21
+ }
22
+ return entry;
23
+ }
@@ -4,13 +4,13 @@ exports.init = init;
4
4
  const __1 = require("..");
5
5
  const types_1 = require("../types");
6
6
  async function init() {
7
- (0, __1.beforeSaveHook)(types_1.Maintenance_Article, async (request) => {
7
+ (0, __1.beforeSaveHook)(types_1.Knowledge_Chat, async (request) => {
8
8
  const { object, original, user } = request;
9
9
  await (0, __1.defaultHandler)(request);
10
10
  await (0, __1.defaultAclHandler)(request);
11
11
  // TODO
12
12
  });
13
- (0, __1.afterSaveHook)(types_1.Maintenance_Article, async (request) => {
13
+ (0, __1.afterSaveHook)(types_1.Knowledge_Chat, async (request) => {
14
14
  const { object, original, user } = request;
15
15
  // TODO
16
16
  });
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Knowledge_ChatMessage, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.Knowledge_ChatMessage, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -2,16 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Downtime, async (request) => {
8
9
  const { object, original, user } = request;
9
10
  await (0, __1.defaultHandler)(request);
10
11
  await (0, __1.defaultAclHandler)(request);
11
- // TODO
12
+ // Remove previous entry if it was created within 5 minutes
13
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
+ query.equalTo("ticket", object.get("ticket"));
15
+ query.descending("createdAt");
16
+ return query;
17
+ });
12
18
  });
13
19
  (0, __1.afterSaveHook)(types_1.Maintenance_Downtime, async (request) => {
14
20
  const { object, original, user } = request;
15
- // TODO
21
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
22
+ await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
23
+ query.includeAll();
24
+ query.equalTo("ticket", object.get("ticket"));
25
+ query.notEqualTo("objectId", object.id);
26
+ return query;
27
+ }, (first, second) => {
28
+ return first.get("value") === second.get("value");
29
+ });
16
30
  });
17
31
  }
@@ -2,16 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Duedate, async (request) => {
8
9
  const { object, original, user } = request;
9
10
  await (0, __1.defaultHandler)(request);
10
11
  await (0, __1.defaultAclHandler)(request);
11
- // TODO
12
+ // Remove previous entry if it was created within 5 minutes
13
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
+ query.equalTo("ticket", object.get("ticket"));
15
+ query.descending("createdAt");
16
+ return query;
17
+ });
12
18
  });
13
19
  (0, __1.afterSaveHook)(types_1.Maintenance_Duedate, async (request) => {
14
20
  const { object, original, user } = request;
21
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
22
+ await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
23
+ query.includeAll();
24
+ query.equalTo("ticket", object.get("ticket"));
25
+ query.notEqualTo("objectId", object.id);
26
+ return query;
27
+ }, (first, second) => {
28
+ return first.get("end")?.getTime() === second.get("end")?.getTime();
29
+ });
15
30
  // TODO
16
31
  });
17
32
  }
@@ -2,16 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Frequency, async (request) => {
8
9
  const { object, original, user } = request;
9
10
  await (0, __1.defaultHandler)(request);
10
11
  await (0, __1.defaultAclHandler)(request);
11
- // TODO
12
+ // Remove previous entry if it was created within 5 minutes
13
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
+ query.equalTo("ticket", object.get("ticket"));
15
+ query.descending("createdAt");
16
+ return query;
17
+ });
12
18
  });
13
19
  (0, __1.afterSaveHook)(types_1.Maintenance_Frequency, async (request) => {
14
20
  const { object, original, user } = request;
21
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
22
+ await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
23
+ query.includeAll();
24
+ query.equalTo("ticket", object.get("ticket"));
25
+ query.notEqualTo("objectId", object.id);
26
+ return query;
27
+ }, (first, second) => {
28
+ return first.get("value") === second.get("value");
29
+ });
15
30
  // TODO
16
31
  });
17
32
  }
@@ -2,16 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Priority, async (request) => {
8
9
  const { object, original, user } = request;
9
10
  await (0, __1.defaultHandler)(request);
10
11
  await (0, __1.defaultAclHandler)(request);
11
- // TODO
12
+ // Remove previous entry if it was created within 5 minutes
13
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
+ query.equalTo("ticket", object.get("ticket"));
15
+ query.descending("createdAt");
16
+ return query;
17
+ });
12
18
  });
13
19
  (0, __1.afterSaveHook)(types_1.Maintenance_Priority, async (request) => {
14
20
  const { object, original, user } = request;
15
- // TODO
21
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
22
+ await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
23
+ query.includeAll();
24
+ query.equalTo("ticket", object.get("ticket"));
25
+ query.notEqualTo("objectId", object.id);
26
+ return query;
27
+ }, (first, second) => {
28
+ return first.get("value") === second.get("value");
29
+ });
16
30
  });
17
31
  }
@@ -2,16 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Restriction, async (request) => {
8
9
  const { object, original, user } = request;
9
10
  await (0, __1.defaultHandler)(request);
10
11
  await (0, __1.defaultAclHandler)(request);
11
- // TODO
12
+ // Remove previous entry if it was created within 5 minutes
13
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
+ query.equalTo("ticket", object.get("ticket"));
15
+ query.descending("createdAt");
16
+ return query;
17
+ });
12
18
  });
13
19
  (0, __1.afterSaveHook)(types_1.Maintenance_Restriction, async (request) => {
14
20
  const { object, original, user } = request;
21
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
22
+ await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
23
+ query.includeAll();
24
+ query.equalTo("ticket", object.get("ticket"));
25
+ query.notEqualTo("objectId", object.id);
26
+ return query;
27
+ }, (first, second) => {
28
+ return first.get("value") === second.get("value");
29
+ });
15
30
  // TODO
16
31
  });
17
32
  }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Assignment, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Assignment, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -2,16 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Issuecategory, async (request) => {
8
9
  const { object, original, user } = request;
9
10
  await (0, __1.defaultHandler)(request);
10
11
  await (0, __1.defaultAclHandler)(request);
11
- // TODO
12
+ // Remove previous entry if it was created within 5 minutes
13
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
+ query.equalTo("ticket", object.get("ticket"));
15
+ query.descending("createdAt");
16
+ return query;
17
+ });
12
18
  });
13
19
  (0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Issuecategory, async (request) => {
14
20
  const { object, original, user } = request;
15
- // TODO
21
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
22
+ await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
23
+ query.includeAll();
24
+ query.equalTo("ticket", object.get("ticket"));
25
+ query.notEqualTo("objectId", object.id);
26
+ return query;
27
+ }, (first, second) => {
28
+ return (first.get("issuecategory")?.id === second.get("issuecategory")?.id);
29
+ });
16
30
  });
17
31
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Kanban_State, async (request) => {
@@ -13,26 +14,42 @@ async function init() {
13
14
  if (original) {
14
15
  await (0, __1.requirePermission)(request, "maintenance:can-update-kanbanstate", "Permission denied.");
15
16
  }
17
+ // Remove previous entry if it was created within 5 minutes
18
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
19
+ query.equalTo("ticket", object.get("ticket"));
20
+ query.descending("createdAt");
21
+ return query;
22
+ });
16
23
  // TODO
17
24
  });
18
25
  (0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Kanban_State, async (request) => {
19
26
  const { object, original, user } = request;
27
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
28
+ const latestEntry = await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
29
+ query.includeAll();
30
+ query.equalTo("ticket", object.get("ticket"));
31
+ query.notEqualTo("objectId", object.id);
32
+ return query;
33
+ }, (first, second) => {
34
+ return first.get("state")?.id === second.get("state")?.id;
35
+ });
36
+ // Update the current state of the ticket
20
37
  const currentTicketState = await new Parse.Query(types_1.Maintenance_Ticket_Kanban_State_Current)
21
- .equalTo("ticket", object.get("ticket"))
38
+ .equalTo("ticket", latestEntry.get("ticket"))
22
39
  .first({ useMasterKey: true });
23
40
  // if the ticket is already in the current state table, update it
24
41
  if (currentTicketState) {
25
- currentTicketState.set("ticketState", object);
26
- currentTicketState.set("state", object.get("state"));
42
+ currentTicketState.set("ticketState", latestEntry);
43
+ currentTicketState.set("state", latestEntry.get("state"));
27
44
  await currentTicketState.save(null, { useMasterKey: true });
28
45
  }
29
46
  // if the ticket is not in the current state table, create a new entry
30
47
  else {
31
48
  const newTicketState = new types_1.Maintenance_Ticket_Kanban_State_Current({
32
- ticket: object.get("ticket"),
33
- ticketState: object,
34
- state: object.get("state"),
35
- tenant: object.get("tenant"),
49
+ ticket: latestEntry.get("ticket"),
50
+ ticketState: latestEntry,
51
+ state: latestEntry.get("state"),
52
+ tenant: latestEntry.get("tenant"),
36
53
  });
37
54
  await newTicketState.save(null, { useMasterKey: true });
38
55
  }
@@ -2,16 +2,32 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Source, async (request) => {
8
9
  const { object, original, user } = request;
9
10
  await (0, __1.defaultHandler)(request);
10
11
  await (0, __1.defaultAclHandler)(request);
12
+ // Remove previous entry if it was created within 5 minutes
13
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
+ query.equalTo("ticket", object.get("ticket"));
15
+ query.descending("createdAt");
16
+ return query;
17
+ });
11
18
  // TODO
12
19
  });
13
20
  (0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Source, async (request) => {
14
21
  const { object, original, user } = request;
22
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
23
+ await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
24
+ query.includeAll();
25
+ query.equalTo("ticket", object.get("ticket"));
26
+ query.notEqualTo("objectId", object.id);
27
+ return query;
28
+ }, (first, second) => {
29
+ return first.get("source")?.id === second.get("source")?.id;
30
+ });
15
31
  // TODO
16
32
  });
17
33
  }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
6
+ const types_1 = require("../types");
7
+ async function init() {
8
+ (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Title, async (request) => {
9
+ const { object, original, user } = request;
10
+ await (0, __1.defaultHandler)(request);
11
+ await (0, __1.defaultAclHandler)(request);
12
+ // Remove previous entry if it was created within 5 minutes
13
+ await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
+ query.equalTo("ticket", object.get("ticket"));
15
+ query.descending("createdAt");
16
+ return query;
17
+ });
18
+ // TODO
19
+ });
20
+ (0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Title, async (request) => {
21
+ const { object, original, user } = request;
22
+ // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
23
+ await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
24
+ query.includeAll();
25
+ query.equalTo("ticket", object.get("ticket"));
26
+ query.notEqualTo("objectId", object.id);
27
+ return query;
28
+ }, (first, second) => {
29
+ return first.get("title") === second.get("title");
30
+ });
31
+ // TODO
32
+ });
33
+ }
@@ -1,4 +1,3 @@
1
- import type { Group } from "./Group";
2
1
  import type { Maintenance_Schedule_Execution } from "./Maintenance_Schedule_Execution";
3
2
  import type { Tenant } from "./Tenant";
4
3
  import type { _Role } from "./_Role";
@@ -10,7 +9,6 @@ export interface Maintenance_Schedule_Execution_StepAttributes {
10
9
  comment?: string;
11
10
  description?: string;
12
11
  done?: boolean;
13
- group: Group;
14
12
  location?: string;
15
13
  protectivegear?: string;
16
14
  role?: _Role;
@@ -28,8 +26,6 @@ export declare class Maintenance_Schedule_Execution_Step extends Parse.Object<Ma
28
26
  set description(value: string | undefined);
29
27
  get done(): boolean | undefined;
30
28
  set done(value: boolean | undefined);
31
- get group(): Group;
32
- set group(value: Group);
33
29
  get location(): string | undefined;
34
30
  set location(value: string | undefined);
35
31
  get protectivegear(): string | undefined;
@@ -23,12 +23,6 @@ class Maintenance_Schedule_Execution_Step extends Parse.Object {
23
23
  set done(value) {
24
24
  super.set("done", value);
25
25
  }
26
- get group() {
27
- return super.get("group");
28
- }
29
- set group(value) {
30
- super.set("group", value);
31
- }
32
26
  get location() {
33
27
  return super.get("location");
34
28
  }
@@ -1,4 +1,3 @@
1
- import type { Group } from "./Group";
2
1
  import type { Maintenance_Schedule } from "./Maintenance_Schedule";
3
2
  import type { Tenant } from "./Tenant";
4
3
  import type { _Role } from "./_Role";
@@ -8,7 +7,6 @@ export interface Maintenance_Schedule_StepAttributes {
8
7
  createdAt: Date;
9
8
  updatedAt: Date;
10
9
  description?: string;
11
- group: Group;
12
10
  location?: string;
13
11
  protectivegear?: string;
14
12
  role?: _Role;
@@ -22,8 +20,6 @@ export declare class Maintenance_Schedule_Step extends Parse.Object<Maintenance_
22
20
  constructor(data?: Partial<Maintenance_Schedule_StepAttributes>);
23
21
  get description(): string | undefined;
24
22
  set description(value: string | undefined);
25
- get group(): Group;
26
- set group(value: Group);
27
23
  get location(): string | undefined;
28
24
  set location(value: string | undefined);
29
25
  get protectivegear(): string | undefined;
@@ -11,12 +11,6 @@ class Maintenance_Schedule_Step extends Parse.Object {
11
11
  set description(value) {
12
12
  super.set("description", value);
13
13
  }
14
- get group() {
15
- return super.get("group");
16
- }
17
- set group(value) {
18
- super.set("group", value);
19
- }
20
14
  get location() {
21
15
  return super.get("location");
22
16
  }
@@ -1,4 +1,3 @@
1
- import type { Group } from "./Group";
2
1
  import type { Maintenance_DailySchedule } from "./Maintenance_DailySchedule";
3
2
  import type { Tenant } from "./Tenant";
4
3
  import type { _Role } from "./_Role";
@@ -8,7 +7,6 @@ export interface Maintenance_TicketAttributes {
8
7
  objectId: string;
9
8
  createdAt: Date;
10
9
  updatedAt: Date;
11
- assignedgroups: Parse.Relation<Maintenance_Ticket, Group>;
12
10
  assignedroles: Parse.Relation<Maintenance_Ticket, _Role>;
13
11
  assignedusers: Parse.Relation<Maintenance_Ticket, _User>;
14
12
  dailySchedule?: Maintenance_DailySchedule;
@@ -21,7 +19,6 @@ export interface Maintenance_TicketAttributes {
21
19
  export declare class Maintenance_Ticket extends Parse.Object<Maintenance_TicketAttributes> {
22
20
  static className: string;
23
21
  constructor(data?: Partial<Maintenance_TicketAttributes>);
24
- get assignedgroups(): Parse.Relation<Maintenance_Ticket, Group>;
25
22
  get assignedroles(): Parse.Relation<Maintenance_Ticket, _Role>;
26
23
  get assignedusers(): Parse.Relation<Maintenance_Ticket, _User>;
27
24
  get dailySchedule(): Maintenance_DailySchedule | undefined;
@@ -5,9 +5,6 @@ class Maintenance_Ticket extends Parse.Object {
5
5
  constructor(data) {
6
6
  super("OD3_Maintenance_Ticket", data);
7
7
  }
8
- get assignedgroups() {
9
- return super.relation("assignedgroups");
10
- }
11
8
  get assignedroles() {
12
9
  return super.relation("assignedroles");
13
10
  }
@@ -0,0 +1,32 @@
1
+ import type { Maintenance_Ticket } from "./Maintenance_Ticket";
2
+ import type { Tenant } from "./Tenant";
3
+ import type { _Role } from "./_Role";
4
+ import type { _User } from "./_User";
5
+ export interface Maintenance_Ticket_AssignmentAttributes {
6
+ id: string;
7
+ objectId: string;
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ assignedRole?: _Role;
11
+ assignedUser?: _User;
12
+ batchStamp: Date;
13
+ tenant?: Tenant;
14
+ ticket?: Maintenance_Ticket;
15
+ user: _User;
16
+ }
17
+ export declare class Maintenance_Ticket_Assignment extends Parse.Object<Maintenance_Ticket_AssignmentAttributes> {
18
+ static className: string;
19
+ constructor(data?: Partial<Maintenance_Ticket_AssignmentAttributes>);
20
+ get assignedRole(): _Role | undefined;
21
+ set assignedRole(value: _Role | undefined);
22
+ get assignedUser(): _User | undefined;
23
+ set assignedUser(value: _User | undefined);
24
+ get batchStamp(): Date;
25
+ set batchStamp(value: Date);
26
+ get tenant(): Tenant | undefined;
27
+ set tenant(value: Tenant | undefined);
28
+ get ticket(): Maintenance_Ticket | undefined;
29
+ set ticket(value: Maintenance_Ticket | undefined);
30
+ get user(): _User;
31
+ set user(value: _User);
32
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Maintenance_Ticket_Assignment = void 0;
4
+ class Maintenance_Ticket_Assignment extends Parse.Object {
5
+ constructor(data) {
6
+ super("OD3_Maintenance_Ticket_Assignment", data);
7
+ }
8
+ get assignedRole() {
9
+ return super.get("assignedRole");
10
+ }
11
+ set assignedRole(value) {
12
+ super.set("assignedRole", value);
13
+ }
14
+ get assignedUser() {
15
+ return super.get("assignedUser");
16
+ }
17
+ set assignedUser(value) {
18
+ super.set("assignedUser", value);
19
+ }
20
+ get batchStamp() {
21
+ return super.get("batchStamp");
22
+ }
23
+ set batchStamp(value) {
24
+ super.set("batchStamp", value);
25
+ }
26
+ get tenant() {
27
+ return super.get("tenant");
28
+ }
29
+ set tenant(value) {
30
+ super.set("tenant", value);
31
+ }
32
+ get ticket() {
33
+ return super.get("ticket");
34
+ }
35
+ set ticket(value) {
36
+ super.set("ticket", value);
37
+ }
38
+ get user() {
39
+ return super.get("user");
40
+ }
41
+ set user(value) {
42
+ super.set("user", value);
43
+ }
44
+ }
45
+ exports.Maintenance_Ticket_Assignment = Maintenance_Ticket_Assignment;
46
+ Maintenance_Ticket_Assignment.className = "OD3_Maintenance_Ticket_Assignment";
47
+ Parse.Object.registerSubclass("OD3_Maintenance_Ticket_Assignment", Maintenance_Ticket_Assignment);
@@ -0,0 +1,25 @@
1
+ import type { Maintenance_Ticket } from "./Maintenance_Ticket";
2
+ import type { Tenant } from "./Tenant";
3
+ import type { _User } from "./_User";
4
+ export interface Maintenance_Ticket_TitleAttributes {
5
+ id: string;
6
+ objectId: string;
7
+ createdAt: Date;
8
+ updatedAt: Date;
9
+ tenant?: Tenant;
10
+ ticket: Maintenance_Ticket;
11
+ title?: string;
12
+ user: _User;
13
+ }
14
+ export declare class Maintenance_Ticket_Title extends Parse.Object<Maintenance_Ticket_TitleAttributes> {
15
+ static className: string;
16
+ constructor(data?: Partial<Maintenance_Ticket_TitleAttributes>);
17
+ get tenant(): Tenant | undefined;
18
+ set tenant(value: Tenant | undefined);
19
+ get ticket(): Maintenance_Ticket;
20
+ set ticket(value: Maintenance_Ticket);
21
+ get title(): string | undefined;
22
+ set title(value: string | undefined);
23
+ get user(): _User;
24
+ set user(value: _User);
25
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Maintenance_Ticket_Title = void 0;
4
+ class Maintenance_Ticket_Title extends Parse.Object {
5
+ constructor(data) {
6
+ super("OD3_Maintenance_Ticket_Title", data);
7
+ }
8
+ get tenant() {
9
+ return super.get("tenant");
10
+ }
11
+ set tenant(value) {
12
+ super.set("tenant", value);
13
+ }
14
+ get ticket() {
15
+ return super.get("ticket");
16
+ }
17
+ set ticket(value) {
18
+ super.set("ticket", value);
19
+ }
20
+ get title() {
21
+ return super.get("title");
22
+ }
23
+ set title(value) {
24
+ super.set("title", value);
25
+ }
26
+ get user() {
27
+ return super.get("user");
28
+ }
29
+ set user(value) {
30
+ super.set("user", value);
31
+ }
32
+ }
33
+ exports.Maintenance_Ticket_Title = Maintenance_Ticket_Title;
34
+ Maintenance_Ticket_Title.className = "OD3_Maintenance_Ticket_Title";
35
+ Parse.Object.registerSubclass("OD3_Maintenance_Ticket_Title", Maintenance_Ticket_Title);
@@ -80,8 +80,6 @@ export { MIAAS_MDSEndpoint } from "./MIAAS_MDSEndpoint";
80
80
  export type { MIAAS_MDSEndpointAttributes } from "./MIAAS_MDSEndpoint";
81
81
  export { MailTemplate } from "./MailTemplate";
82
82
  export type { MailTemplateAttributes } from "./MailTemplate";
83
- export { Maintenance_Article } from "./Maintenance_Article";
84
- export type { Maintenance_ArticleAttributes } from "./Maintenance_Article";
85
83
  export { Maintenance_DailySchedule } from "./Maintenance_DailySchedule";
86
84
  export type { Maintenance_DailyScheduleAttributes } from "./Maintenance_DailySchedule";
87
85
  export { Maintenance_Downtime } from "./Maintenance_Downtime";
@@ -124,6 +122,8 @@ export { Maintenance_Source_File } from "./Maintenance_Source_File";
124
122
  export type { Maintenance_Source_FileAttributes } from "./Maintenance_Source_File";
125
123
  export { Maintenance_Ticket } from "./Maintenance_Ticket";
126
124
  export type { Maintenance_TicketAttributes } from "./Maintenance_Ticket";
125
+ export { Maintenance_Ticket_Assignment } from "./Maintenance_Ticket_Assignment";
126
+ export type { Maintenance_Ticket_AssignmentAttributes } from "./Maintenance_Ticket_Assignment";
127
127
  export { Maintenance_Ticket_Issuecategory } from "./Maintenance_Ticket_Issuecategory";
128
128
  export type { Maintenance_Ticket_IssuecategoryAttributes } from "./Maintenance_Ticket_Issuecategory";
129
129
  export { Maintenance_Ticket_Kanban_State } from "./Maintenance_Ticket_Kanban_State";
@@ -132,6 +132,8 @@ export { Maintenance_Ticket_Kanban_State_Current } from "./Maintenance_Ticket_Ka
132
132
  export type { Maintenance_Ticket_Kanban_State_CurrentAttributes } from "./Maintenance_Ticket_Kanban_State_Current";
133
133
  export { Maintenance_Ticket_Source } from "./Maintenance_Ticket_Source";
134
134
  export type { Maintenance_Ticket_SourceAttributes } from "./Maintenance_Ticket_Source";
135
+ export { Maintenance_Ticket_Title } from "./Maintenance_Ticket_Title";
136
+ export type { Maintenance_Ticket_TitleAttributes } from "./Maintenance_Ticket_Title";
135
137
  export { Monitoring_DataHierachies } from "./Monitoring_DataHierachies";
136
138
  export type { Monitoring_DataHierachiesAttributes } from "./Monitoring_DataHierachies";
137
139
  export { Monitoring_Jobs } from "./Monitoring_Jobs";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Maintenance_Kanban_State = exports.Maintenance_Item = exports.Maintenance_Issuecategory = exports.Maintenance_Frequency = exports.Maintenance_File = exports.Maintenance_Duedate = exports.Maintenance_Downtime = exports.Maintenance_DailySchedule = exports.Maintenance_Article = exports.MailTemplate = exports.MIAAS_MDSEndpoint = exports.Log = exports.Language = exports.Knowledge_Video = exports.Knowledge_DocumentPage = exports.Knowledge_Document = exports.Knowledge_ChatMessage = exports.Knowledge_Chat = exports.Knowledge_Category = exports.Knowledge_Article = exports.Group = exports.GTFS_Wheelchair_Boarding = exports.GTFS_Wheelchair_Accessible = exports.GTFS_Trip = exports.GTFS_Stop_Times = exports.GTFS_Stop = exports.GTFS_Route_Type = exports.GTFS_Route = exports.GTFS_Location_Type = exports.GTFS_Level = exports.GTFS_Direction = exports.GTFS_Calendar = exports.GTFS_Bikes_Allowed = exports.GTFS_Agency = exports.Dashboard = exports.Core_Token = exports.Core_Email = exports.Contact = exports.Config = exports.Company = exports.BDE_Unit = exports.BDE_Result = exports.BDE_Page = exports.BDE_ListEntry = exports.BDE_List = exports.BDE_Form = exports.Attachment = exports.AlarmWebhook = exports.AlarmAction = exports.Alarm = void 0;
4
- exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.UserData = exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = exports.Notification = exports.NavigationItem = exports.NavigationGroup = exports.Monitoring_Slideshow = exports.Monitoring_ReportImage = exports.Monitoring_Jobs = exports.Monitoring_DataHierachies = exports.Maintenance_Ticket_Source = exports.Maintenance_Ticket_Kanban_State_Current = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_SourceMeta = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Schedule = exports.Maintenance_Restriction = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message_Body = exports.Maintenance_Message = exports.Maintenance_Media = void 0;
3
+ exports.Maintenance_Media = exports.Maintenance_Kanban_State = exports.Maintenance_Item = exports.Maintenance_Issuecategory = exports.Maintenance_Frequency = exports.Maintenance_File = exports.Maintenance_Duedate = exports.Maintenance_Downtime = exports.Maintenance_DailySchedule = exports.MailTemplate = exports.MIAAS_MDSEndpoint = exports.Log = exports.Language = exports.Knowledge_Video = exports.Knowledge_DocumentPage = exports.Knowledge_Document = exports.Knowledge_ChatMessage = exports.Knowledge_Chat = exports.Knowledge_Category = exports.Knowledge_Article = exports.Group = exports.GTFS_Wheelchair_Boarding = exports.GTFS_Wheelchair_Accessible = exports.GTFS_Trip = exports.GTFS_Stop_Times = exports.GTFS_Stop = exports.GTFS_Route_Type = exports.GTFS_Route = exports.GTFS_Location_Type = exports.GTFS_Level = exports.GTFS_Direction = exports.GTFS_Calendar = exports.GTFS_Bikes_Allowed = exports.GTFS_Agency = exports.Dashboard = exports.Core_Token = exports.Core_Email = exports.Contact = exports.Config = exports.Company = exports.BDE_Unit = exports.BDE_Result = exports.BDE_Page = exports.BDE_ListEntry = exports.BDE_List = exports.BDE_Form = exports.Attachment = exports.AlarmWebhook = exports.AlarmAction = exports.Alarm = void 0;
4
+ exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.UserData = exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = exports.Notification = exports.NavigationItem = exports.NavigationGroup = exports.Monitoring_Slideshow = exports.Monitoring_ReportImage = exports.Monitoring_Jobs = exports.Monitoring_DataHierachies = exports.Maintenance_Ticket_Title = exports.Maintenance_Ticket_Source = exports.Maintenance_Ticket_Kanban_State_Current = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket_Assignment = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_SourceMeta = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Schedule = exports.Maintenance_Restriction = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message_Body = exports.Maintenance_Message = void 0;
5
5
  var Alarm_1 = require("./Alarm");
6
6
  Object.defineProperty(exports, "Alarm", { enumerable: true, get: function () { return Alarm_1.Alarm; } });
7
7
  var AlarmAction_1 = require("./AlarmAction");
@@ -84,8 +84,6 @@ var MIAAS_MDSEndpoint_1 = require("./MIAAS_MDSEndpoint");
84
84
  Object.defineProperty(exports, "MIAAS_MDSEndpoint", { enumerable: true, get: function () { return MIAAS_MDSEndpoint_1.MIAAS_MDSEndpoint; } });
85
85
  var MailTemplate_1 = require("./MailTemplate");
86
86
  Object.defineProperty(exports, "MailTemplate", { enumerable: true, get: function () { return MailTemplate_1.MailTemplate; } });
87
- var Maintenance_Article_1 = require("./Maintenance_Article");
88
- Object.defineProperty(exports, "Maintenance_Article", { enumerable: true, get: function () { return Maintenance_Article_1.Maintenance_Article; } });
89
87
  var Maintenance_DailySchedule_1 = require("./Maintenance_DailySchedule");
90
88
  Object.defineProperty(exports, "Maintenance_DailySchedule", { enumerable: true, get: function () { return Maintenance_DailySchedule_1.Maintenance_DailySchedule; } });
91
89
  var Maintenance_Downtime_1 = require("./Maintenance_Downtime");
@@ -128,6 +126,8 @@ var Maintenance_Source_File_1 = require("./Maintenance_Source_File");
128
126
  Object.defineProperty(exports, "Maintenance_Source_File", { enumerable: true, get: function () { return Maintenance_Source_File_1.Maintenance_Source_File; } });
129
127
  var Maintenance_Ticket_1 = require("./Maintenance_Ticket");
130
128
  Object.defineProperty(exports, "Maintenance_Ticket", { enumerable: true, get: function () { return Maintenance_Ticket_1.Maintenance_Ticket; } });
129
+ var Maintenance_Ticket_Assignment_1 = require("./Maintenance_Ticket_Assignment");
130
+ Object.defineProperty(exports, "Maintenance_Ticket_Assignment", { enumerable: true, get: function () { return Maintenance_Ticket_Assignment_1.Maintenance_Ticket_Assignment; } });
131
131
  var Maintenance_Ticket_Issuecategory_1 = require("./Maintenance_Ticket_Issuecategory");
132
132
  Object.defineProperty(exports, "Maintenance_Ticket_Issuecategory", { enumerable: true, get: function () { return Maintenance_Ticket_Issuecategory_1.Maintenance_Ticket_Issuecategory; } });
133
133
  var Maintenance_Ticket_Kanban_State_1 = require("./Maintenance_Ticket_Kanban_State");
@@ -136,6 +136,8 @@ var Maintenance_Ticket_Kanban_State_Current_1 = require("./Maintenance_Ticket_Ka
136
136
  Object.defineProperty(exports, "Maintenance_Ticket_Kanban_State_Current", { enumerable: true, get: function () { return Maintenance_Ticket_Kanban_State_Current_1.Maintenance_Ticket_Kanban_State_Current; } });
137
137
  var Maintenance_Ticket_Source_1 = require("./Maintenance_Ticket_Source");
138
138
  Object.defineProperty(exports, "Maintenance_Ticket_Source", { enumerable: true, get: function () { return Maintenance_Ticket_Source_1.Maintenance_Ticket_Source; } });
139
+ var Maintenance_Ticket_Title_1 = require("./Maintenance_Ticket_Title");
140
+ Object.defineProperty(exports, "Maintenance_Ticket_Title", { enumerable: true, get: function () { return Maintenance_Ticket_Title_1.Maintenance_Ticket_Title; } });
139
141
  var Monitoring_DataHierachies_1 = require("./Monitoring_DataHierachies");
140
142
  Object.defineProperty(exports, "Monitoring_DataHierachies", { enumerable: true, get: function () { return Monitoring_DataHierachies_1.Monitoring_DataHierachies; } });
141
143
  var Monitoring_Jobs_1 = require("./Monitoring_Jobs");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openinc/parse-server-opendash",
3
- "version": "2.4.54",
3
+ "version": "2.4.55",
4
4
  "description": "Parse Server Cloud Code for open.DASH",
5
5
  "keywords": [
6
6
  "parse",
@@ -21,7 +21,9 @@
21
21
  "schema-ts": "parse-server-schema typescript --prefix OD3_ --global-sdk ./src/types",
22
22
  "typedoc": "typedoc --plugin typedoc-plugin-markdown --hideBreadcrumbs --out docs src/index.ts",
23
23
  "predevstart": "cd /usr/src/app && pnpm config set strict-ssl false && echo 'Installing additional packages: ' ${OPENINC_PARSE_ADDITIONAL_PACKAGES} && pnpm install ${OPENINC_PARSE_ADDITIONAL_PACKAGES} && echo 'Fetching schema from parse' && pnpm parse-server-schema down --prefix OD3_ ./packages/schema/",
24
- "devstart": "parse-server ./config.js"
24
+ "devstart": "parse-server ./config.js",
25
+ "featuremap": "node ./scripts/create-featuremap.js",
26
+ "hooks": "node ./scripts/create-hooks.js"
25
27
  },
26
28
  "dependencies": {
27
29
  "@openinc/parse-server-schema": "^1.7.7",
@@ -12,11 +12,6 @@
12
12
  "type": "Boolean",
13
13
  "required": false
14
14
  },
15
- "group": {
16
- "type": "Pointer",
17
- "targetClass": "{{PREFIX}}Group",
18
- "required": true
19
- },
20
15
  "location": {
21
16
  "type": "String",
22
17
  "required": false
@@ -4,11 +4,6 @@
4
4
  "type": "String",
5
5
  "required": false
6
6
  },
7
- "group": {
8
- "type": "Pointer",
9
- "targetClass": "{{PREFIX}}Group",
10
- "required": true
11
- },
12
7
  "location": {
13
8
  "type": "String",
14
9
  "required": false
@@ -1,10 +1,5 @@
1
1
  {
2
2
  "fields": {
3
- "assignedgroups": {
4
- "type": "Relation",
5
- "targetClass": "{{PREFIX}}Group",
6
- "required": false
7
- },
8
3
  "assignedroles": {
9
4
  "type": "Relation",
10
5
  "targetClass": "_Role",
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "fields": {
3
- "body": {
4
- "type": "String",
3
+ "assignedRole": {
4
+ "type": "Pointer",
5
+ "targetClass": "_Role",
5
6
  "required": false
6
7
  },
7
- "media": {
8
- "type": "Relation",
9
- "targetClass": "{{PREFIX}}Maintenance_Media",
8
+ "assignedUser": {
9
+ "type": "Pointer",
10
+ "targetClass": "_User",
10
11
  "required": false
11
12
  },
12
- "subject": {
13
- "type": "String",
14
- "required": false
13
+ "batchStamp": {
14
+ "type": "Date",
15
+ "required": true
15
16
  },
16
17
  "tenant": {
17
18
  "type": "Pointer",
@@ -21,34 +22,36 @@
21
22
  "ticket": {
22
23
  "type": "Pointer",
23
24
  "targetClass": "{{PREFIX}}Maintenance_Ticket",
24
- "required": true
25
+ "required": false
25
26
  },
26
27
  "user": {
27
28
  "type": "Pointer",
28
29
  "targetClass": "_User",
29
- "required": false
30
+ "required": true
30
31
  }
31
32
  },
32
33
  "classLevelPermissions": {
33
34
  "find": {
34
- "requiresAuthentication": true
35
+ "*": true
35
36
  },
36
37
  "count": {
37
- "requiresAuthentication": true
38
+ "*": true
38
39
  },
39
40
  "get": {
40
- "requiresAuthentication": true
41
+ "*": true
41
42
  },
42
43
  "create": {
43
- "requiresAuthentication": true
44
+ "*": true
44
45
  },
45
46
  "update": {
46
- "requiresAuthentication": true
47
+ "*": true
47
48
  },
48
49
  "delete": {
49
- "requiresAuthentication": true
50
+ "*": true
51
+ },
52
+ "addField": {
53
+ "*": true
50
54
  },
51
- "addField": {},
52
55
  "protectedFields": {
53
56
  "*": []
54
57
  }
@@ -0,0 +1,49 @@
1
+ {
2
+ "fields": {
3
+ "tenant": {
4
+ "type": "Pointer",
5
+ "targetClass": "{{PREFIX}}Tenant",
6
+ "required": false
7
+ },
8
+ "ticket": {
9
+ "type": "Pointer",
10
+ "targetClass": "{{PREFIX}}Maintenance_Ticket",
11
+ "required": true
12
+ },
13
+ "title": {
14
+ "type": "String",
15
+ "required": false
16
+ },
17
+ "user": {
18
+ "type": "Pointer",
19
+ "targetClass": "_User",
20
+ "required": true
21
+ }
22
+ },
23
+ "classLevelPermissions": {
24
+ "find": {
25
+ "*": true
26
+ },
27
+ "count": {
28
+ "*": true
29
+ },
30
+ "get": {
31
+ "*": true
32
+ },
33
+ "create": {
34
+ "*": true
35
+ },
36
+ "update": {
37
+ "*": true
38
+ },
39
+ "delete": {
40
+ "*": true
41
+ },
42
+ "addField": {
43
+ "*": true
44
+ },
45
+ "protectedFields": {
46
+ "*": []
47
+ }
48
+ }
49
+ }
@@ -1,31 +0,0 @@
1
- import type { Maintenance_Media } from "./Maintenance_Media";
2
- import type { Maintenance_Ticket } from "./Maintenance_Ticket";
3
- import type { Tenant } from "./Tenant";
4
- import type { _User } from "./_User";
5
- export interface Maintenance_ArticleAttributes {
6
- id: string;
7
- objectId: string;
8
- createdAt: Date;
9
- updatedAt: Date;
10
- body?: string;
11
- media: Parse.Relation<Maintenance_Article, Maintenance_Media>;
12
- subject?: string;
13
- tenant?: Tenant;
14
- ticket: Maintenance_Ticket;
15
- user?: _User;
16
- }
17
- export declare class Maintenance_Article extends Parse.Object<Maintenance_ArticleAttributes> {
18
- static className: string;
19
- constructor(data?: Partial<Maintenance_ArticleAttributes>);
20
- get body(): string | undefined;
21
- set body(value: string | undefined);
22
- get media(): Parse.Relation<Maintenance_Article, Maintenance_Media>;
23
- get subject(): string | undefined;
24
- set subject(value: string | undefined);
25
- get tenant(): Tenant | undefined;
26
- set tenant(value: Tenant | undefined);
27
- get ticket(): Maintenance_Ticket;
28
- set ticket(value: Maintenance_Ticket);
29
- get user(): _User | undefined;
30
- set user(value: _User | undefined);
31
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Maintenance_Article = void 0;
4
- class Maintenance_Article extends Parse.Object {
5
- constructor(data) {
6
- super("OD3_Maintenance_Article", data);
7
- }
8
- get body() {
9
- return super.get("body");
10
- }
11
- set body(value) {
12
- super.set("body", value);
13
- }
14
- get media() {
15
- return super.relation("media");
16
- }
17
- get subject() {
18
- return super.get("subject");
19
- }
20
- set subject(value) {
21
- super.set("subject", value);
22
- }
23
- get tenant() {
24
- return super.get("tenant");
25
- }
26
- set tenant(value) {
27
- super.set("tenant", value);
28
- }
29
- get ticket() {
30
- return super.get("ticket");
31
- }
32
- set ticket(value) {
33
- super.set("ticket", value);
34
- }
35
- get user() {
36
- return super.get("user");
37
- }
38
- set user(value) {
39
- super.set("user", value);
40
- }
41
- }
42
- exports.Maintenance_Article = Maintenance_Article;
43
- Maintenance_Article.className = "OD3_Maintenance_Article";
44
- Parse.Object.registerSubclass("OD3_Maintenance_Article", Maintenance_Article);