@openinc/parse-server-opendash 1.3.2 → 1.4.2

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.
@@ -57,7 +57,7 @@ function init() {
57
57
  return __awaiter(this, void 0, void 0, function () {
58
58
  var _this = this;
59
59
  return __generator(this, function (_a) {
60
- Parse.Cloud.beforeSave(__1.PREFIX + "Alarm", function (request) { return __awaiter(_this, void 0, void 0, function () {
60
+ __1.beforeSaveHook(__1.PREFIX + "Alarm", function (request) { return __awaiter(_this, void 0, void 0, function () {
61
61
  var object, original, user;
62
62
  return __generator(this, function (_a) {
63
63
  object = request.object, original = request.original, user = request.user;
@@ -65,7 +65,7 @@ function init() {
65
65
  return [2 /*return*/];
66
66
  });
67
67
  }); });
68
- Parse.Cloud.afterSave(__1.PREFIX + "Alarm", function (_a) {
68
+ __1.afterSaveHook(__1.PREFIX + "Alarm", function (_a) {
69
69
  var object = _a.object, original = _a.original, user = _a.user;
70
70
  return __awaiter(_this, void 0, void 0, function () {
71
71
  var username, baseurl, headers, body;
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "AlarmAction", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "AlarmAction", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "AlarmAction", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "AlarmAction", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "AlarmWebhook", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "AlarmWebhook", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "AlarmWebhook", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "AlarmWebhook", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "Config", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "Config", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "Config", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "Config", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "Dashboard", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "Dashboard", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,11 +50,34 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "Dashboard", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "Dashboard", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
+ var acl, widgetIds, widgets, _i, widgets_1, widget;
56
57
  return __generator(this, function (_b) {
57
- return [2 /*return*/];
58
+ switch (_b.label) {
59
+ case 0:
60
+ acl = object.getACL();
61
+ widgetIds = object.get("widgets");
62
+ if (!(acl && Array.isArray(widgetIds) && widgetIds.length > 0)) return [3 /*break*/, 3];
63
+ widgets = widgetIds === null || widgetIds === void 0 ? void 0 : widgetIds.map(function (id) {
64
+ return new Parse.Object(__1.PREFIX + "Widget", {
65
+ objectId: id,
66
+ });
67
+ });
68
+ return [4 /*yield*/, Parse.Object.fetchAll(widgets, { useMasterKey: true })];
69
+ case 1:
70
+ _b.sent();
71
+ for (_i = 0, widgets_1 = widgets; _i < widgets_1.length; _i++) {
72
+ widget = widgets_1[_i];
73
+ widget.setACL(acl);
74
+ }
75
+ return [4 /*yield*/, Parse.Object.saveAll(widgets, { useMasterKey: true })];
76
+ case 2:
77
+ _b.sent();
78
+ _b.label = 3;
79
+ case 3: return [2 /*return*/];
80
+ }
58
81
  });
59
82
  });
60
83
  });
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "NavigationGroup", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "NavigationGroup", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "NavigationGroup", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "NavigationGroup", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "NavigationItem", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "NavigationItem", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "NavigationItem", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "NavigationItem", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -46,7 +46,7 @@ function init() {
46
46
  return __awaiter(this, void 0, void 0, function () {
47
47
  var _this = this;
48
48
  return __generator(this, function (_a) {
49
- Parse.Cloud.beforeSave(__1.PREFIX + "Notification", function (request) { return __awaiter(_this, void 0, void 0, function () {
49
+ __1.beforeSaveHook(__1.PREFIX + "Notification", function (request) { return __awaiter(_this, void 0, void 0, function () {
50
50
  var object, original, user;
51
51
  return __generator(this, function (_a) {
52
52
  object = request.object, original = request.original, user = request.user;
@@ -54,7 +54,7 @@ function init() {
54
54
  return [2 /*return*/];
55
55
  });
56
56
  }); });
57
- Parse.Cloud.afterSave(__1.PREFIX + "Notification", function (_a) {
57
+ __1.afterSaveHook(__1.PREFIX + "Notification", function (_a) {
58
58
  var object = _a.object, original = _a.original, user = _a.user;
59
59
  return __awaiter(_this, void 0, void 0, function () {
60
60
  var subscriptions, _i, subscriptions_1, subscription, _b, _c, _d, _e, _f, _g;
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "Permission", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "Permission", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "Permission", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "Permission", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "Report", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "Report", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "Report", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "Report", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "Share", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "Share", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "Share", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "Share", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "Source", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "Source", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user, acl, tenant, meta;
47
47
  return __generator(this, function (_a) {
48
48
  switch (_a.label) {
@@ -74,7 +74,7 @@ function init() {
74
74
  }
75
75
  });
76
76
  }); });
77
- Parse.Cloud.afterSave(__1.PREFIX + "Source", function (_a) {
77
+ __1.afterSaveHook(__1.PREFIX + "Source", function (_a) {
78
78
  var object = _a.object, original = _a.original, user = _a.user;
79
79
  return __awaiter(_this, void 0, void 0, function () {
80
80
  var meta, locations, _i, locations_1, location, error_1, permissions, _b, permissions_1, permission, error_2;
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "SourceMeta", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "SourceMeta", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "SourceMeta", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "SourceMeta", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  var sources, _i, sources_1, source, locations, _b, locations_1, location, error_1;
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "Tenant", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "Tenant", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user, rootSource, sourceACL, dataSource;
47
47
  var _a, _b;
48
48
  return __generator(this, function (_c) {
@@ -93,7 +93,7 @@ function init() {
93
93
  }
94
94
  });
95
95
  }); });
96
- Parse.Cloud.afterSave(__1.PREFIX + "Tenant", function (_a) {
96
+ __1.afterSaveHook(__1.PREFIX + "Tenant", function (_a) {
97
97
  var object = _a.object, original = _a.original, user = _a.user;
98
98
  return __awaiter(_this, void 0, void 0, function () {
99
99
  var _b;
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "UserData", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "UserData", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "UserData", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "UserData", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "WebPush", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "WebPush", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  var _a;
48
48
  return __generator(this, function (_b) {
@@ -63,7 +63,7 @@ function init() {
63
63
  return [2 /*return*/];
64
64
  });
65
65
  }); });
66
- Parse.Cloud.afterSave(__1.PREFIX + "WebPush", function (_a) {
66
+ __1.afterSaveHook(__1.PREFIX + "WebPush", function (_a) {
67
67
  var object = _a.object, original = _a.original, user = _a.user;
68
68
  return __awaiter(_this, void 0, void 0, function () {
69
69
  return __generator(this, function (_b) {
@@ -42,7 +42,7 @@ function init() {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
43
  var _this = this;
44
44
  return __generator(this, function (_a) {
45
- Parse.Cloud.beforeSave(__1.PREFIX + "Widget", function (request) { return __awaiter(_this, void 0, void 0, function () {
45
+ __1.beforeSaveHook(__1.PREFIX + "Widget", function (request) { return __awaiter(_this, void 0, void 0, function () {
46
46
  var object, original, user;
47
47
  return __generator(this, function (_a) {
48
48
  object = request.object, original = request.original, user = request.user;
@@ -50,7 +50,7 @@ function init() {
50
50
  return [2 /*return*/];
51
51
  });
52
52
  }); });
53
- Parse.Cloud.afterSave(__1.PREFIX + "Widget", function (_a) {
53
+ __1.afterSaveHook(__1.PREFIX + "Widget", function (_a) {
54
54
  var object = _a.object, original = _a.original, user = _a.user;
55
55
  return __awaiter(_this, void 0, void 0, function () {
56
56
  return __generator(this, function (_b) {
@@ -48,54 +48,47 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
48
48
  };
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
50
  exports.init = void 0;
51
+ var __1 = require("..");
51
52
  function init() {
52
53
  return __awaiter(this, void 0, void 0, function () {
53
54
  var _this = this;
54
55
  return __generator(this, function (_a) {
55
- Parse.Cloud.beforeSave(Parse.User, function (request) { return __awaiter(_this, void 0, void 0, function () {
56
+ __1.beforeSaveHook(Parse.User, function (request) { return __awaiter(_this, void 0, void 0, function () {
56
57
  var tenant;
57
58
  var _a, _b;
58
59
  var _c;
59
60
  return __generator(this, function (_d) {
60
61
  tenant = (_c = request.object.get("tenant")) === null || _c === void 0 ? void 0 : _c.id;
61
- if (tenant) {
62
- request.object.setACL(new Parse.ACL(__assign(__assign(__assign({}, (tenant && (_a = {},
63
- _a["role:od-tenant-user-" + tenant] = { read: true },
64
- _a["role:od-tenant-admin-" + tenant] = { read: true, write: true },
65
- _a))), (request.object.id && (_b = {},
66
- _b[request.object.id] = { read: true },
67
- _b))), { "role:od-admin": { read: true, write: true } })));
68
- }
62
+ request.object.setACL(new Parse.ACL(__assign(__assign(__assign({}, (tenant && (_a = {},
63
+ _a["role:od-tenant-user-" + tenant] = { read: true },
64
+ _a["role:od-tenant-admin-" + tenant] = { read: true, write: true },
65
+ _a))), (request.object.id && (_b = {},
66
+ _b[request.object.id] = { read: true },
67
+ _b))), { "role:od-admin": { read: true, write: true } })));
69
68
  return [2 /*return*/];
70
69
  });
71
70
  }); });
72
- Parse.Cloud.afterSave(Parse.User, function (request) { return __awaiter(_this, void 0, void 0, function () {
73
- var tenant, prevTenant, isAdmin, wasAdmin;
71
+ __1.afterSaveHook(Parse.User, function (request) { return __awaiter(_this, void 0, void 0, function () {
72
+ var tenant, prevTenant, isTenant, wasTenant, isAdmin, wasAdmin;
74
73
  var _a, _b, _c, _d;
75
74
  return __generator(this, function (_e) {
76
75
  tenant = (_a = request.object.get("tenant")) === null || _a === void 0 ? void 0 : _a.id;
77
76
  prevTenant = (_c = (_b = request.original) === null || _b === void 0 ? void 0 : _b.get("tenant")) === null || _c === void 0 ? void 0 : _c.id;
78
- isAdmin = request.object.get("tenantAdmin");
79
- wasAdmin = (_d = request.original) === null || _d === void 0 ? void 0 : _d.get("tenantAdmin");
80
- if (tenant !== prevTenant) {
77
+ isTenant = !!tenant;
78
+ wasTenant = !!prevTenant;
79
+ isAdmin = !!request.object.get("tenantAdmin");
80
+ wasAdmin = !!((_d = request.original) === null || _d === void 0 ? void 0 : _d.get("tenantAdmin"));
81
+ if (tenant !== prevTenant || isAdmin !== wasAdmin) {
82
+ userRole(request.object, "od-tenant-user", isTenant);
83
+ userRole(request.object, "od-tenant-admin", isTenant && isAdmin);
81
84
  if (tenant) {
82
85
  userRole(request.object, "od-tenant-user-" + tenant, true);
86
+ userRole(request.object, "od-tenant-admin-" + tenant, isAdmin);
83
87
  }
84
- if (prevTenant) {
88
+ if (wasTenant) {
85
89
  userRole(request.object, "od-tenant-user-" + prevTenant, false);
86
90
  userRole(request.object, "od-tenant-admin-" + prevTenant, false);
87
91
  }
88
- if (tenant && !prevTenant) {
89
- userRole(request.object, "od-tenant-user", true);
90
- }
91
- if (!tenant && prevTenant) {
92
- userRole(request.object, "od-tenant-user", false);
93
- userRole(request.object, "od-tenant-admin", false);
94
- }
95
- }
96
- if (tenant && isAdmin !== wasAdmin) {
97
- userRole(request.object, "od-tenant-admin-" + tenant, isAdmin);
98
- userRole(request.object, "od-tenant-admin", isAdmin);
99
92
  }
100
93
  return [2 /*return*/];
101
94
  });
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /// <reference types="parse" />
1
+ import type { Cloud as ParseCloud } from "parse";
2
2
  export declare let PREFIX: string;
3
3
  export interface ConfigInterface {
4
4
  configPath?: string;
@@ -20,3 +20,12 @@ export declare function ensureRole(name: string, options?: {
20
20
  }): Promise<void>;
21
21
  export declare function immutableField(request: Parse.Cloud.BeforeSaveRequest, fieldName: string): Promise<void>;
22
22
  export declare function defaultHandler(request: Parse.Cloud.BeforeSaveRequest): Promise<void>;
23
+ declare type beforeSaveHookType<T extends Parse.Object<Parse.Attributes>> = (request: ParseCloud.BeforeSaveRequest<T>) => Promise<void>;
24
+ export declare function beforeSaveHook<T extends Parse.Object<Parse.Attributes>>(target: string | {
25
+ new (): T;
26
+ }, callback: beforeSaveHookType<T>): void;
27
+ declare type afterSaveHookType<T extends Parse.Object<Parse.Attributes>> = (request: ParseCloud.AfterSaveRequest<T>) => Promise<void>;
28
+ export declare function afterSaveHook<T extends Parse.Object<Parse.Attributes>>(target: string | {
29
+ new (): T;
30
+ }, callback: afterSaveHookType<T>): void;
31
+ export {};
package/dist/index.js CHANGED
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.defaultHandler = exports.immutableField = exports.ensureRole = exports.getEnvBoolean = exports.getEnv = exports.getConfigBoolean = exports.getConfig = exports.requirePermission = exports.hasPermission = exports.init = exports.PREFIX = void 0;
42
+ exports.afterSaveHook = exports.beforeSaveHook = exports.defaultHandler = exports.immutableField = exports.ensureRole = exports.getEnvBoolean = exports.getEnv = exports.getConfigBoolean = exports.getConfig = exports.requirePermission = exports.hasPermission = exports.init = exports.PREFIX = void 0;
43
43
  var web_push_1 = __importDefault(require("web-push"));
44
44
  var path_1 = require("path");
45
45
  var parse_server_schema_1 = require("@openinc/parse-server-schema");
@@ -419,3 +419,67 @@ function defaultHandler(request) {
419
419
  });
420
420
  }
421
421
  exports.defaultHandler = defaultHandler;
422
+ var beforeSaveHooks = {};
423
+ function beforeSaveHook(target, callback) {
424
+ var className = typeof target === "string" ? target : new target().className;
425
+ if (!beforeSaveHooks[className]) {
426
+ beforeSaveHooks[className] = [];
427
+ Parse.Cloud.beforeSave(className, function beforeSaveHookFunction(request) {
428
+ return __awaiter(this, void 0, void 0, function () {
429
+ var _i, _a, fn;
430
+ return __generator(this, function (_b) {
431
+ switch (_b.label) {
432
+ case 0:
433
+ _i = 0, _a = beforeSaveHooks[className];
434
+ _b.label = 1;
435
+ case 1:
436
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
437
+ fn = _a[_i];
438
+ return [4 /*yield*/, fn(request)];
439
+ case 2:
440
+ _b.sent();
441
+ _b.label = 3;
442
+ case 3:
443
+ _i++;
444
+ return [3 /*break*/, 1];
445
+ case 4: return [2 /*return*/];
446
+ }
447
+ });
448
+ });
449
+ });
450
+ }
451
+ beforeSaveHooks[className].push(callback);
452
+ }
453
+ exports.beforeSaveHook = beforeSaveHook;
454
+ var afterSaveHooks = {};
455
+ function afterSaveHook(target, callback) {
456
+ var className = typeof target === "string" ? target : new target().className;
457
+ if (!afterSaveHooks[className]) {
458
+ afterSaveHooks[className] = [];
459
+ Parse.Cloud.afterSave(className, function afterSaveHookFunction(request) {
460
+ return __awaiter(this, void 0, void 0, function () {
461
+ var _i, _a, fn;
462
+ return __generator(this, function (_b) {
463
+ switch (_b.label) {
464
+ case 0:
465
+ _i = 0, _a = afterSaveHooks[className];
466
+ _b.label = 1;
467
+ case 1:
468
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
469
+ fn = _a[_i];
470
+ return [4 /*yield*/, fn(request)];
471
+ case 2:
472
+ _b.sent();
473
+ _b.label = 3;
474
+ case 3:
475
+ _i++;
476
+ return [3 /*break*/, 1];
477
+ case 4: return [2 /*return*/];
478
+ }
479
+ });
480
+ });
481
+ });
482
+ }
483
+ afterSaveHooks[className].push(callback);
484
+ }
485
+ exports.afterSaveHook = afterSaveHook;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openinc/parse-server-opendash",
3
- "version": "1.3.2",
3
+ "version": "1.4.2",
4
4
  "description": "Parse Server Cloud Code for open.DASH",
5
5
  "keywords": [
6
6
  "parse",