@openinc/parse-server-opendash 1.8.0 → 1.8.4

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.
@@ -171,7 +171,7 @@ function init(className) {
171
171
  name: data.title,
172
172
  valueTypes: valueTypes,
173
173
  values: [{ date: saveDateTimestamp, value: values }],
174
- })];
174
+ }, data.user.email)];
175
175
  case 1:
176
176
  _a.sent();
177
177
  return [2 /*return*/];
@@ -49,9 +49,6 @@ function init(className) {
49
49
  case 0:
50
50
  object = request.object, original = request.original, user = request.user;
51
51
  (0, __1.defaultHandler)(request);
52
- if (!object.get("meta")) {
53
- object.set("meta", new Parse.Object(className, {}));
54
- }
55
52
  acl = object.getACL();
56
53
  if (!acl) {
57
54
  acl = new Parse.ACL();
@@ -64,6 +61,10 @@ function init(className) {
64
61
  acl.setRoleWriteAccess("od-tenant-admin-" + (tenant === null || tenant === void 0 ? void 0 : tenant.id), true);
65
62
  }
66
63
  object.setACL(acl);
64
+ // ACL end
65
+ if (!object.get("meta")) {
66
+ object.set("meta", new Parse.Object(__1.PREFIX + "SourceMeta", {}));
67
+ }
67
68
  meta = object.get("meta");
68
69
  meta === null || meta === void 0 ? void 0 : meta.setACL(object.getACL());
69
70
  meta === null || meta === void 0 ? void 0 : meta.set("name", object.get("name"));
@@ -104,7 +105,7 @@ function init(className) {
104
105
  location.set("name", object.get("name"));
105
106
  location.set("spsid", object.get("tag"));
106
107
  location.setACL(object.getACL());
107
- return [4 /*yield*/, location.save(null, { useMasterKey: true })];
108
+ return [4 /*yield*/, location.save(null, { useMasterKey: true, cascadeSave: false })];
108
109
  case 4:
109
110
  _c.sent();
110
111
  _c.label = 5;
@@ -139,7 +140,7 @@ function init(className) {
139
140
  permission = permissions_1[_b];
140
141
  permission.set("owner", object.get("tag"));
141
142
  permission.setACL(object.getACL());
142
- return [4 /*yield*/, permission.save(null, { useMasterKey: true })];
143
+ return [4 /*yield*/, permission.save(null, { useMasterKey: true, cascadeSave: false })];
143
144
  case 11:
144
145
  _c.sent();
145
146
  _c.label = 12;
@@ -58,7 +58,7 @@ function init(className) {
58
58
  switch (_c.label) {
59
59
  case 0:
60
60
  _c.trys.push([0, 9, , 10]);
61
- return [4 /*yield*/, new Parse.Query(className)
61
+ return [4 /*yield*/, new Parse.Query(__1.PREFIX + "Source")
62
62
  .equalTo("meta", object)
63
63
  .find({ useMasterKey: true })];
64
64
  case 1:
@@ -88,7 +88,7 @@ function init(className) {
88
88
  location.set("postCode", object === null || object === void 0 ? void 0 : object.get("postCode"));
89
89
  // @ts-ignore
90
90
  location.set("address", object === null || object === void 0 ? void 0 : object.get("address"));
91
- return [4 /*yield*/, location.save(null, { useMasterKey: true })];
91
+ return [4 /*yield*/, location.save(null, { useMasterKey: true, cascadeSave: false })];
92
92
  case 5:
93
93
  _c.sent();
94
94
  _c.label = 6;
@@ -65,7 +65,7 @@ function init(className) {
65
65
  },
66
66
  _a)));
67
67
  if (!!object.get("meta")) return [3 /*break*/, 2];
68
- meta = new Parse.Object(className, {
68
+ meta = new Parse.Object(__1.PREFIX + "TenantMeta", {
69
69
  tenant: object,
70
70
  });
71
71
  return [4 /*yield*/, meta.save(null, { useMasterKey: true, cascadeSave: false })];
@@ -73,7 +73,7 @@ function init(className) {
73
73
  _c.sent();
74
74
  object.set("meta", meta);
75
75
  _c.label = 2;
76
- case 2: return [4 /*yield*/, new Parse.Query(className)
76
+ case 2: return [4 /*yield*/, new Parse.Query(__1.PREFIX + "Source")
77
77
  .equalTo("tag", "tenant-root-source")
78
78
  .first({ useMasterKey: true })];
79
79
  case 3:
@@ -85,7 +85,7 @@ function init(className) {
85
85
  _b));
86
86
  dataSource = object.get("dataSource");
87
87
  if (!dataSource) {
88
- dataSource = new Parse.Object(className);
88
+ dataSource = new Parse.Object(__1.PREFIX + "Source");
89
89
  }
90
90
  dataSource.setACL(sourceACL);
91
91
  if (rootSource) {
package/dist/ow.d.ts CHANGED
@@ -17,4 +17,5 @@ export interface DataItemValueInterface {
17
17
  date: number;
18
18
  value: any[];
19
19
  }
20
- export declare function publishDataItem(dataItem: DataItemInterface): Promise<void>;
20
+ export declare function getToken(usermail?: string): Promise<string | null>;
21
+ export declare function publishDataItem(dataItem: DataItemInterface, usermail?: string): Promise<void>;
package/dist/ow.js CHANGED
@@ -39,25 +39,51 @@ 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.publishDataItem = void 0;
42
+ exports.publishDataItem = exports.getToken = void 0;
43
43
  var node_fetch_1 = __importDefault(require("node-fetch"));
44
+ var jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
44
45
  var _1 = require(".");
45
46
  var LOG_PREFIX = "[@openinc/parse-server-opendash][open.WARE] ";
46
- function publishDataItem(dataItem) {
47
+ function getToken(usermail) {
47
48
  return __awaiter(this, void 0, void 0, function () {
48
- var active, token, baseurl, url, headers, response, _a, _b, _c, _d;
49
- return __generator(this, function (_e) {
50
- switch (_e.label) {
49
+ var JWT_EMAIL, JWT_SECRET, JWT_ISS, JWT_TOKEN;
50
+ return __generator(this, function (_a) {
51
+ JWT_EMAIL = usermail || (0, _1.getEnv)("PARSE_SERVER_OPENWARE_JWT_ADMIN_EMAIL");
52
+ JWT_SECRET = (0, _1.getEnv)("PARSE_SERVER_OPENWARE_JWT_SECRET");
53
+ JWT_ISS = (0, _1.getEnv)("PARSE_SERVER_OPENWARE_JWT_ISS");
54
+ JWT_TOKEN = (0, _1.getEnv)("PARSE_SERVER_OPENWARE_JWT_TOKEN");
55
+ if (JWT_EMAIL && JWT_SECRET && JWT_ISS) {
56
+ return [2 /*return*/, jsonwebtoken_1.default.sign({ usermail: JWT_EMAIL }, JWT_SECRET, {
57
+ algorithm: "HS256",
58
+ issuer: JWT_ISS,
59
+ noTimestamp: true,
60
+ })];
61
+ }
62
+ if (JWT_TOKEN) {
63
+ return [2 /*return*/, JWT_TOKEN];
64
+ }
65
+ return [2 /*return*/, null];
66
+ });
67
+ });
68
+ }
69
+ exports.getToken = getToken;
70
+ function publishDataItem(dataItem, usermail) {
71
+ return __awaiter(this, void 0, void 0, function () {
72
+ var active, token, baseurl, url, headers, response, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
73
+ return __generator(this, function (_m) {
74
+ switch (_m.label) {
51
75
  case 0:
52
76
  active = (0, _1.getEnvBoolean)("PARSE_SERVER_OPENWARE");
53
77
  if (!active) {
54
78
  return [2 /*return*/, console.log(LOG_PREFIX +
55
79
  "PARSE_SERVER_OPENWARE = false => Sending Data to open.WARE is not available.")];
56
80
  }
57
- token = (0, _1.getEnv)("PARSE_SERVER_OPENWARE_JWT_TOKEN");
81
+ return [4 /*yield*/, getToken(usermail)];
82
+ case 1:
83
+ token = _m.sent();
58
84
  if (!token) {
59
85
  return [2 /*return*/, console.log(LOG_PREFIX +
60
- "PARSE_SERVER_OPENWARE_JWT_TOKEN = undefined => Sending Data to open.WARE is not available.")];
86
+ "PARSE_SERVER_OPENWARE_JWT_TOKEN OR _JWT_SECERT/_ADMIN_EMAIL/_ISS = undefined => Sending Data to open.WARE is not available.")];
61
87
  }
62
88
  baseurl = (0, _1.getEnv)("PARSE_SERVER_OPENWARE_BASEURL");
63
89
  if (!baseurl) {
@@ -73,22 +99,48 @@ function publishDataItem(dataItem) {
73
99
  headers: headers,
74
100
  body: JSON.stringify(dataItem),
75
101
  })];
76
- case 1:
77
- response = _e.sent();
78
- if (!!response.ok) return [3 /*break*/, 3];
79
- _a = Error.bind;
80
- _b = LOG_PREFIX +
81
- "Bad Status Code: " +
102
+ case 2:
103
+ response = _m.sent();
104
+ if (!!response.ok) return [3 /*break*/, 6];
105
+ _b = (_a = console).log;
106
+ _c = LOG_PREFIX +
107
+ "PUBLISH ERROR Bad Status Code: " +
82
108
  response.status +
83
109
  "\n";
84
110
  return [4 /*yield*/, response.text()];
85
- case 2: throw new (_a.apply(Error, [void 0, _b +
86
- (_e.sent())]))();
87
111
  case 3:
88
- _d = (_c = console).log;
112
+ _b.apply(_a, [_c +
113
+ (_m.sent())]);
114
+ _e = (_d = console).log;
115
+ _f = LOG_PREFIX +
116
+ "PUBLISH ERROR DEBUG: \n" +
117
+ "URL = " +
118
+ url +
119
+ "\n" +
120
+ "TOKEN = " +
121
+ token +
122
+ "\n" +
123
+ "PAYLOAD = " +
124
+ JSON.stringify(dataItem, null, 2) +
125
+ "\n";
89
126
  return [4 /*yield*/, response.text()];
90
127
  case 4:
91
- _d.apply(_c, [_e.sent()]);
128
+ _e.apply(_d, [_f +
129
+ (_m.sent())]);
130
+ _g = Error.bind;
131
+ _h = LOG_PREFIX +
132
+ "Bad Status Code: " +
133
+ response.status +
134
+ "\n";
135
+ return [4 /*yield*/, response.text()];
136
+ case 5: throw new (_g.apply(Error, [void 0, _h +
137
+ (_m.sent())]))();
138
+ case 6:
139
+ _k = (_j = console).log;
140
+ _l = LOG_PREFIX + "PUBLISH SUCCESS ";
141
+ return [4 /*yield*/, response.text()];
142
+ case 7:
143
+ _k.apply(_j, [_l + (_m.sent())]);
92
144
  return [2 /*return*/];
93
145
  }
94
146
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openinc/parse-server-opendash",
3
- "version": "1.8.0",
3
+ "version": "1.8.4",
4
4
  "description": "Parse Server Cloud Code for open.DASH",
5
5
  "keywords": [
6
6
  "parse",
@@ -21,10 +21,12 @@
21
21
  "dependencies": {
22
22
  "@openinc/parse-server-schema": "^1.3.1",
23
23
  "fast-deep-equal": "^3.1.3",
24
+ "jsonwebtoken": "^8.5.1",
24
25
  "node-fetch": "^2.6.1",
25
26
  "web-push": "^3.4.4"
26
27
  },
27
28
  "devDependencies": {
29
+ "@types/jsonwebtoken": "^8.5.6",
28
30
  "@types/node": "^15.0.2",
29
31
  "@types/node-fetch": "^2.5.10",
30
32
  "@types/parse": "^2.18.6",