@nlabs/reaktor 0.4.0 → 0.4.1
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.
- package/lib/actions/conversations.d.ts +14 -0
- package/lib/actions/conversations.js +333 -0
- package/lib/actions/dynamodb.js +155 -0
- package/lib/actions/email.js +177 -0
- package/lib/actions/files.js +319 -0
- package/lib/{data → actions}/groups.d.ts +4 -3
- package/lib/actions/groups.js +282 -0
- package/lib/actions/images.d.ts +22 -0
- package/lib/actions/images.js +682 -0
- package/lib/actions/index.js +40 -0
- package/lib/{data → actions}/ios.d.ts +2 -1
- package/lib/actions/ios.js +179 -0
- package/lib/actions/locations.js +112 -0
- package/lib/actions/messages.d.ts +13 -0
- package/lib/actions/messages.js +216 -0
- package/lib/{data → actions}/notifications.d.ts +2 -2
- package/lib/actions/notifications.js +63 -0
- package/lib/{data → actions}/payments.d.ts +2 -2
- package/lib/actions/payments.js +491 -0
- package/lib/actions/posts.d.ts +19 -0
- package/lib/actions/posts.js +538 -0
- package/lib/actions/reactions.d.ts +30 -0
- package/lib/actions/reactions.js +340 -0
- package/lib/{data → actions}/s3.d.ts +1 -1
- package/lib/actions/s3.js +122 -0
- package/lib/{data → actions}/search.d.ts +2 -2
- package/lib/actions/search.js +99 -0
- package/lib/actions/sms.js +76 -0
- package/lib/actions/statistics.d.ts +2 -0
- package/lib/actions/statistics.js +63 -0
- package/lib/actions/subscription.js +209 -0
- package/lib/actions/tags.d.ts +26 -0
- package/lib/actions/tags.js +340 -0
- package/lib/actions/users.d.ts +44 -0
- package/lib/actions/users.js +571 -0
- package/lib/{data → actions}/websockets.d.ts +1 -1
- package/lib/actions/websockets.js +156 -0
- package/lib/config.d.ts +2 -3
- package/lib/config.js +116 -149
- package/lib/index.d.ts +1 -1
- package/lib/index.js +23 -45
- package/lib/templates/email/layout.d.ts +2 -0
- package/lib/templates/email/layout.js +292 -0
- package/lib/templates/email/passwordForgot.d.ts +2 -0
- package/lib/templates/email/passwordForgot.js +28 -0
- package/lib/templates/email/passwordRecovery.d.ts +2 -0
- package/lib/templates/email/passwordRecovery.js +25 -0
- package/lib/templates/email/verifyEmail.d.ts +2 -0
- package/lib/templates/email/verifyEmail.js +28 -0
- package/lib/templates/email/welcome.d.ts +2 -0
- package/lib/templates/email/welcome.js +28 -0
- package/lib/templates/sms/passwordForgot.d.ts +2 -0
- package/lib/templates/sms/passwordForgot.js +14 -0
- package/lib/templates/sms/passwordRecovery.d.ts +2 -0
- package/lib/templates/sms/passwordRecovery.js +14 -0
- package/lib/templates/sms/verifyEmail.d.ts +2 -0
- package/lib/templates/sms/verifyEmail.js +14 -0
- package/lib/templates/sms/verifyPhone.d.ts +2 -0
- package/lib/templates/sms/verifyPhone.js +14 -0
- package/lib/templates/sms/welcome.d.ts +2 -0
- package/lib/templates/sms/welcome.js +14 -0
- package/lib/types/apps.d.ts +2 -2
- package/lib/types/apps.js +4 -2
- package/lib/types/arangodb.js +4 -2
- package/lib/types/auth.d.ts +4 -8
- package/lib/types/auth.js +4 -2
- package/lib/types/conversations.d.ts +3 -3
- package/lib/types/conversations.js +4 -2
- package/lib/types/email.d.ts +2 -2
- package/lib/types/email.js +4 -2
- package/lib/types/files.js +4 -2
- package/lib/types/google.js +4 -2
- package/lib/types/groups.d.ts +2 -1
- package/lib/types/groups.js +4 -2
- package/lib/types/images.d.ts +8 -5
- package/lib/types/images.js +4 -2
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +37 -227
- package/lib/types/locations.js +4 -2
- package/lib/types/messages.d.ts +12 -2
- package/lib/types/messages.js +4 -2
- package/lib/types/notifications.d.ts +2 -2
- package/lib/types/notifications.js +4 -2
- package/lib/types/payments.js +4 -2
- package/lib/types/posts.d.ts +18 -1
- package/lib/types/posts.js +4 -2
- package/lib/types/statistics.d.ts +3 -0
- package/lib/types/statistics.js +4 -0
- package/lib/types/tags.d.ts +6 -0
- package/lib/types/tags.js +4 -2
- package/lib/types/users.d.ts +15 -11
- package/lib/types/users.js +4 -2
- package/lib/utils/analytics.d.ts +7 -0
- package/lib/utils/analytics.js +101 -77
- package/lib/utils/arangodb.d.ts +1 -1
- package/lib/utils/arangodb.js +93 -114
- package/lib/utils/auth.js +58 -55
- package/lib/utils/graphql.js +38 -19
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +26 -84
- package/lib/utils/objects.js +44 -53
- package/lib/utils/session.d.ts +18 -0
- package/lib/utils/session.js +42 -0
- package/package.json +32 -30
- package/lib/data/conversations.d.ts +0 -8
- package/lib/data/conversations.js +0 -311
- package/lib/data/dynamodb.js +0 -206
- package/lib/data/email.js +0 -222
- package/lib/data/files.js +0 -525
- package/lib/data/groups.js +0 -435
- package/lib/data/images.d.ts +0 -22
- package/lib/data/images.js +0 -1051
- package/lib/data/index.js +0 -266
- package/lib/data/ios.js +0 -355
- package/lib/data/locations.js +0 -172
- package/lib/data/messages.d.ts +0 -9
- package/lib/data/messages.js +0 -299
- package/lib/data/notifications.js +0 -59
- package/lib/data/payments.js +0 -771
- package/lib/data/posts.d.ts +0 -23
- package/lib/data/posts.js +0 -766
- package/lib/data/reactions.d.ts +0 -14
- package/lib/data/reactions.js +0 -529
- package/lib/data/s3.js +0 -155
- package/lib/data/search.js +0 -155
- package/lib/data/sms.js +0 -83
- package/lib/data/subscription.js +0 -337
- package/lib/data/tags.d.ts +0 -14
- package/lib/data/tags.js +0 -397
- package/lib/data/users.d.ts +0 -20
- package/lib/data/users.js +0 -470
- package/lib/data/websockets.js +0 -250
- package/lib/types/reactions.d.ts +0 -17
- package/lib/types/reactions.js +0 -2
- package/lib/utils/redis.d.ts +0 -1
- package/lib/utils/redis.js +0 -36
- package/templates/email/layout.html +0 -279
- package/templates/email/passwordForgot.html +0 -15
- package/templates/email/passwordRecovery.html +0 -12
- package/templates/email/verifyEmail.html +0 -15
- package/templates/sms/passwordForgot.txt +0 -1
- package/templates/sms/passwordRecovery.txt +0 -1
- package/templates/sms/verifyEmail.txt +0 -1
- package/templates/sms/verifyPhone.txt +0 -1
- /package/lib/{data → actions}/dynamodb.d.ts +0 -0
- /package/lib/{data → actions}/email.d.ts +0 -0
- /package/lib/{data → actions}/files.d.ts +0 -0
- /package/lib/{data → actions}/index.d.ts +0 -0
- /package/lib/{data → actions}/locations.d.ts +0 -0
- /package/lib/{data → actions}/sms.d.ts +0 -0
- /package/lib/{data → actions}/subscription.d.ts +0 -0
package/lib/data/locations.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.array.concat");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.array.filter");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/es.array.find");
|
|
8
|
-
|
|
9
|
-
require("core-js/modules/es.array.find-index");
|
|
10
|
-
|
|
11
|
-
require("core-js/modules/es.array.join");
|
|
12
|
-
|
|
13
|
-
require("core-js/modules/es.array.slice");
|
|
14
|
-
|
|
15
|
-
require("core-js/modules/es.date.now");
|
|
16
|
-
|
|
17
|
-
require("core-js/modules/es.date.to-string");
|
|
18
|
-
|
|
19
|
-
require("core-js/modules/es.object.define-properties");
|
|
20
|
-
|
|
21
|
-
require("core-js/modules/es.object.freeze");
|
|
22
|
-
|
|
23
|
-
Object.defineProperty(exports, "__esModule", {
|
|
24
|
-
value: true
|
|
25
|
-
});
|
|
26
|
-
exports.addLocation = void 0;
|
|
27
|
-
|
|
28
|
-
var _ripHunter = require("@nlabs/rip-hunter");
|
|
29
|
-
|
|
30
|
-
var _utils = require("@nlabs/utils");
|
|
31
|
-
|
|
32
|
-
var _arangojs = require("arangojs");
|
|
33
|
-
|
|
34
|
-
var _get = _interopRequireDefault(require("lodash/get"));
|
|
35
|
-
|
|
36
|
-
var _config = require("../config");
|
|
37
|
-
|
|
38
|
-
var _utils2 = require("../utils");
|
|
39
|
-
|
|
40
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
41
|
-
|
|
42
|
-
function _templateObject() {
|
|
43
|
-
var data = _taggedTemplateLiteral(["UPSERT {googleId: ", "}\n INSERT ", "\n UPDATE ", "\n IN locations RETURN NEW"]);
|
|
44
|
-
|
|
45
|
-
_templateObject = function _templateObject() {
|
|
46
|
-
return data;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
return data;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
53
|
-
|
|
54
|
-
var eventCategory = 'locations';
|
|
55
|
-
|
|
56
|
-
var addLocation = function addLocation(context, location) {
|
|
57
|
-
var action = 'add';
|
|
58
|
-
var database = context.database,
|
|
59
|
-
sessionId = context.userId;
|
|
60
|
-
var address = location.address,
|
|
61
|
-
itemId = location.itemId,
|
|
62
|
-
itemType = location.itemType;
|
|
63
|
-
|
|
64
|
-
var geocodeUrl = _config.Config.get('google.geocode.url');
|
|
65
|
-
|
|
66
|
-
var params = {
|
|
67
|
-
address: address,
|
|
68
|
-
key: _config.Config.get('google.geocode.key')
|
|
69
|
-
};
|
|
70
|
-
var url = "".concat(geocodeUrl, "?").concat((0, _ripHunter.queryString)(params));
|
|
71
|
-
return (0, _ripHunter.get)(url).then(function (json) {
|
|
72
|
-
var _json$results = json.results,
|
|
73
|
-
results = _json$results === void 0 ? [] : _json$results,
|
|
74
|
-
_json$status = json.status,
|
|
75
|
-
status = _json$status === void 0 ? '' : _json$status;
|
|
76
|
-
|
|
77
|
-
if (status === 'OK' && results.length) {
|
|
78
|
-
var geodata = results[0];
|
|
79
|
-
var addressComponents = (0, _get["default"])(geodata, 'address_components');
|
|
80
|
-
|
|
81
|
-
var getFieldVal = function getFieldVal(name) {
|
|
82
|
-
var _ref = addressComponents.find(function (addressField) {
|
|
83
|
-
var types = addressField.types || [];
|
|
84
|
-
return types.findIndex(function (fieldType) {
|
|
85
|
-
return fieldType === name;
|
|
86
|
-
}) >= 0;
|
|
87
|
-
}) || {},
|
|
88
|
-
_ref$short_name = _ref.short_name,
|
|
89
|
-
shortName = _ref$short_name === void 0 ? '' : _ref$short_name;
|
|
90
|
-
|
|
91
|
-
return shortName;
|
|
92
|
-
}; // Street
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var streetNumber = getFieldVal('street_number');
|
|
96
|
-
var route = getFieldVal('route'); // Location
|
|
97
|
-
|
|
98
|
-
var now = Date.now(); // Item
|
|
99
|
-
|
|
100
|
-
var formatItemType = (0, _utils.parseChar)(itemType).toLowerCase();
|
|
101
|
-
var formatItemId = (0, _utils.parseId)(itemId);
|
|
102
|
-
var googleId = (0, _get["default"])(geodata, 'place_id');
|
|
103
|
-
var update = {};
|
|
104
|
-
var insert = {
|
|
105
|
-
_key: (0, _utils.createHash)("post-".concat(sessionId)),
|
|
106
|
-
added: now,
|
|
107
|
-
city: getFieldVal('locality'),
|
|
108
|
-
country: getFieldVal('country'),
|
|
109
|
-
formatted: (0, _get["default"])(geodata, 'formatted_address'),
|
|
110
|
-
googleId: googleId,
|
|
111
|
-
latitude: (0, _get["default"])(geodata, 'geometry.location.lat'),
|
|
112
|
-
longitude: (0, _get["default"])(geodata, 'geometry.location.lng'),
|
|
113
|
-
state: getFieldVal('administrative_area_level_1'),
|
|
114
|
-
street: [streetNumber, route].filter(function (obj) {
|
|
115
|
-
return obj;
|
|
116
|
-
}).join(' '),
|
|
117
|
-
zip: getFieldVal('postal_code')
|
|
118
|
-
};
|
|
119
|
-
var aqlQry = (0, _arangojs.aql)(_templateObject(), googleId, insert, update);
|
|
120
|
-
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
121
|
-
return cursor.next();
|
|
122
|
-
}).then(function () {
|
|
123
|
-
var updatedLocation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
124
|
-
var itemDocId;
|
|
125
|
-
var updatedLocationKey = updatedLocation._key;
|
|
126
|
-
|
|
127
|
-
switch (formatItemType) {
|
|
128
|
-
case 'posts':
|
|
129
|
-
itemDocId = "posts/".concat(formatItemId);
|
|
130
|
-
break;
|
|
131
|
-
|
|
132
|
-
default:
|
|
133
|
-
itemDocId = '';
|
|
134
|
-
} // If there is a valid item doc id, create an edge
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (itemDocId) {
|
|
138
|
-
var edgeCollection = (0, _utils2.useDb)(database).collection('hasLocation');
|
|
139
|
-
var locationId = updatedLocationKey;
|
|
140
|
-
var locationDocId = "locations/".concat(locationId);
|
|
141
|
-
var edgeId = (0, _utils.createHash)("hasLocation-".concat(locationId, "-").concat(sessionId));
|
|
142
|
-
var edge = {
|
|
143
|
-
_from: itemDocId,
|
|
144
|
-
_key: edgeId,
|
|
145
|
-
_to: locationDocId
|
|
146
|
-
};
|
|
147
|
-
return edgeCollection.save(edge, {
|
|
148
|
-
returnNew: true
|
|
149
|
-
}).then(function () {
|
|
150
|
-
return updatedLocation;
|
|
151
|
-
});
|
|
152
|
-
} // Otherwise just return the new location
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
return updatedLocation;
|
|
156
|
-
})["catch"](function (error) {
|
|
157
|
-
return (0, _utils2.logError)({
|
|
158
|
-
action: action,
|
|
159
|
-
category: eventCategory,
|
|
160
|
-
label: 'db_error'
|
|
161
|
-
}, error, context).then(function () {
|
|
162
|
-
return null;
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return {};
|
|
168
|
-
});
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
exports.addLocation = addLocation;
|
|
172
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2xvY2F0aW9ucy50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiYWRkTG9jYXRpb24iLCJjb250ZXh0IiwibG9jYXRpb24iLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImFkZHJlc3MiLCJpdGVtSWQiLCJpdGVtVHlwZSIsImdlb2NvZGVVcmwiLCJDb25maWciLCJnZXQiLCJwYXJhbXMiLCJrZXkiLCJ1cmwiLCJ0aGVuIiwianNvbiIsInJlc3VsdHMiLCJzdGF0dXMiLCJsZW5ndGgiLCJnZW9kYXRhIiwiYWRkcmVzc0NvbXBvbmVudHMiLCJnZXRGaWVsZFZhbCIsIm5hbWUiLCJmaW5kIiwiYWRkcmVzc0ZpZWxkIiwidHlwZXMiLCJmaW5kSW5kZXgiLCJmaWVsZFR5cGUiLCJzaG9ydF9uYW1lIiwic2hvcnROYW1lIiwic3RyZWV0TnVtYmVyIiwicm91dGUiLCJub3ciLCJEYXRlIiwiZm9ybWF0SXRlbVR5cGUiLCJ0b0xvd2VyQ2FzZSIsImZvcm1hdEl0ZW1JZCIsImdvb2dsZUlkIiwidXBkYXRlIiwiaW5zZXJ0IiwiX2tleSIsImFkZGVkIiwiY2l0eSIsImNvdW50cnkiLCJmb3JtYXR0ZWQiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInN0YXRlIiwic3RyZWV0IiwiZmlsdGVyIiwib2JqIiwiam9pbiIsInppcCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwiY3Vyc29yIiwibmV4dCIsInVwZGF0ZWRMb2NhdGlvbiIsIml0ZW1Eb2NJZCIsInVwZGF0ZWRMb2NhdGlvbktleSIsImVkZ2VDb2xsZWN0aW9uIiwiY29sbGVjdGlvbiIsImxvY2F0aW9uSWQiLCJsb2NhdGlvbkRvY0lkIiwiZWRnZUlkIiwiZWRnZSIsIl9mcm9tIiwiX3RvIiwic2F2ZSIsInJldHVybk5ldyIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7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RUFBYztBQUNaLGNBQU1FLGNBQThCLEdBQUcsbUJBQU0zRCxRQUFOLEVBQWdCNEQsVUFBaEIsQ0FBMkIsYUFBM0IsQ0FBdkM7QUFDQSxjQUFNQyxVQUFrQixHQUFHSCxrQkFBM0I7QUFDQSxjQUFNSSxhQUFxQix1QkFBZ0JELFVBQWhCLENBQTNCO0FBQ0EsY0FBTUUsTUFBTSxHQUFHLDZDQUEwQkYsVUFBMUIsY0FBd0M1RCxTQUF4QyxFQUFmO0FBQ0EsY0FBTStELElBQVMsR0FBRztBQUFDQyxZQUFBQSxLQUFLLEVBQUVSLFNBQVI7QUFBbUJuQixZQUFBQSxJQUFJLEVBQUV5QixNQUF6QjtBQUFpQ0csWUFBQUEsR0FBRyxFQUFFSjtBQUF0QyxXQUFsQjtBQUVBLGlCQUFPSCxjQUFjLENBQUNRLElBQWYsQ0FBb0JILElBQXBCLEVBQTBCO0FBQUNJLFlBQUFBLFNBQVMsRUFBRTtBQUFaLFdBQTFCLEVBQTZDeEQsSUFBN0MsQ0FBa0Q7QUFBQSxtQkFBTTRDLGVBQU47QUFBQSxXQUFsRCxDQUFQO0FBQ0QsU0FyQjJDLENBdUI1Qzs7O0FBQ0EsZUFBT0EsZUFBUDtBQUNELE9BM0JJLFdBNEJFLFVBQUNhLEtBQUQ7QUFBQSxlQUFrQixzQkFBUztBQUNoQ3RFLFVBQUFBLE1BQU0sRUFBTkEsTUFEZ0M7QUFFaEN1RSxVQUFBQSxRQUFRLEVBQUUzRSxhQUZzQjtBQUdoQzRFLFVBQUFBLEtBQUssRUFBRTtBQUh5QixTQUFULEVBSXRCRixLQUpzQixFQUlmeEUsT0FKZSxFQUlOZSxJQUpNLENBSUQ7QUFBQSxpQkFBTSxJQUFOO0FBQUEsU0FKQyxDQUFsQjtBQUFBLE9BNUJGLENBQVA7QUFpQ0Q7O0FBRUQsV0FBTyxFQUFQO0FBQ0QsR0FsRkksQ0FBUDtBQW1GRCxDQTlGTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2dldCBhcyBodHRwR2V0LCBxdWVyeVN0cmluZ30gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUNoYXIsIHBhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcbmltcG9ydCB7RWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvY3Vyc29yJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7R29vZ2xlTWFwc0FkZHJlc3NUeXBlfSBmcm9tICcuLi90eXBlcy9nb29nbGUnO1xuaW1wb3J0IHtMb2NhdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzL2xvY2F0aW9ucyc7XG5pbXBvcnQge2xvZ0Vycm9yLCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnbG9jYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IGFkZExvY2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBQcm9taXNlPExvY2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGQnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHthZGRyZXNzLCBpdGVtSWQsIGl0ZW1UeXBlfSA9IGxvY2F0aW9uO1xuICBjb25zdCBnZW9jb2RlVXJsOiBzdHJpbmcgPSBDb25maWcuZ2V0KCdnb29nbGUuZ2VvY29kZS51cmwnKTtcbiAgY29uc3QgcGFyYW1zOiBvYmplY3QgPSB7XG4gICAgYWRkcmVzcyxcbiAgICBrZXk6IENvbmZpZy5nZXQoJ2dvb2dsZS5nZW9jb2RlLmtleScpXG4gIH07XG4gIGNvbnN0IHVybDogc3RyaW5nID0gYCR7Z2VvY29kZVVybH0/JHtxdWVyeVN0cmluZyhwYXJhbXMpfWA7XG5cbiAgcmV0dXJuIGh0dHBHZXQodXJsKVxuICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICBjb25zdCB7cmVzdWx0cyA9IFtdLCBzdGF0dXMgPSAnJ30gPSBqc29uO1xuXG4gICAgICBpZihzdGF0dXMgPT09ICdPSycgJiYgcmVzdWx0cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZ2VvZGF0YTogb2JqZWN0ID0gcmVzdWx0c1swXTtcbiAgICAgICAgY29uc3QgYWRkcmVzc0NvbXBvbmVudHM6IEdvb2dsZU1hcHNBZGRyZXNzVHlwZVtdID0gZ2V0KGdlb2RhdGEsICdhZGRyZXNzX2NvbXBvbmVudHMnKTtcbiAgICAgICAgY29uc3QgZ2V0RmllbGRWYWwgPSAobmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgICAgICBjb25zdCB7c2hvcnRfbmFtZTogc2hvcnROYW1lID0gJyd9ID0gYWRkcmVzc0NvbXBvbmVudHMuZmluZCgoYWRkcmVzc0ZpZWxkOiBHb29nbGVNYXBzQWRkcmVzc1R5cGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gYWRkcmVzc0ZpZWxkLnR5cGVzIHx8IFtdO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVzLmZpbmRJbmRleCgoZmllbGRUeXBlOiBzdHJpbmcpID0+IGZpZWxkVHlwZSA9PT0gbmFtZSkgPj0gMDtcbiAgICAgICAgICB9KSB8fCB7fTtcblxuICAgICAgICAgIHJldHVybiBzaG9ydE5hbWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gU3RyZWV0XG4gICAgICAgIGNvbnN0IHN0cmVldE51bWJlcjogc3RyaW5nID0gZ2V0RmllbGRWYWwoJ3N0cmVldF9udW1iZXInKTtcbiAgICAgICAgY29uc3Qgcm91dGU6IHN0cmluZyA9IGdldEZpZWxkVmFsKCdyb3V0ZScpO1xuXG4gICAgICAgIC8vIExvY2F0aW9uXG4gICAgICAgIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBJdGVtXG4gICAgICAgIGNvbnN0IGZvcm1hdEl0ZW1UeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbVR5cGUpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VJZChpdGVtSWQpO1xuICAgICAgICBjb25zdCBnb29nbGVJZDogc3RyaW5nID0gZ2V0KGdlb2RhdGEsICdwbGFjZV9pZCcpO1xuICAgICAgICBjb25zdCB1cGRhdGU6IExvY2F0aW9uVHlwZSA9IHt9O1xuICAgICAgICBjb25zdCBpbnNlcnQ6IExvY2F0aW9uVHlwZSA9IHtcbiAgICAgICAgICBfa2V5OiBjcmVhdGVIYXNoKGBwb3N0LSR7c2Vzc2lvbklkfWApLFxuICAgICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgICAgY2l0eTogZ2V0RmllbGRWYWwoJ2xvY2FsaXR5JyksXG4gICAgICAgICAgY291bnRyeTogZ2V0RmllbGRWYWwoJ2NvdW50cnknKSxcbiAgICAgICAgICBmb3JtYXR0ZWQ6IGdldChnZW9kYXRhLCAnZm9ybWF0dGVkX2FkZHJlc3MnKSxcbiAgICAgICAgICBnb29nbGVJZCxcbiAgICAgICAgICBsYXRpdHVkZTogZ2V0KGdlb2RhdGEsICdnZW9tZXRyeS5sb2NhdGlvbi5sYXQnKSxcbiAgICAgICAgICBsb25naXR1ZGU6IGdldChnZW9kYXRhLCAnZ2VvbWV0cnkubG9jYXRpb24ubG5nJyksXG4gICAgICAgICAgc3RhdGU6IGdldEZpZWxkVmFsKCdhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEnKSxcbiAgICAgICAgICBzdHJlZXQ6IFtzdHJlZXROdW1iZXIsIHJvdXRlXS5maWx0ZXIoKG9iaikgPT4gb2JqKS5qb2luKCcgJyksXG4gICAgICAgICAgemlwOiBnZXRGaWVsZFZhbCgncG9zdGFsX2NvZGUnKVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7Z29vZ2xlSWQ6ICR7Z29vZ2xlSWR9fVxuICAgICAgICAgICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgICAgICAgICAgVVBEQVRFICR7dXBkYXRlfVxuICAgICAgICAgICAgSU4gbG9jYXRpb25zIFJFVFVSTiBORVdgO1xuXG4gICAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAgIC50aGVuKCh1cGRhdGVkTG9jYXRpb246IExvY2F0aW9uVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgICBsZXQgaXRlbURvY0lkOiBzdHJpbmc7XG4gICAgICAgICAgICBjb25zdCB7X2tleTogdXBkYXRlZExvY2F0aW9uS2V5fSA9IHVwZGF0ZWRMb2NhdGlvbjtcblxuICAgICAgICAgICAgc3dpdGNoKGZvcm1hdEl0ZW1UeXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ3Bvc3RzJzpcbiAgICAgICAgICAgICAgICBpdGVtRG9jSWQgPSBgcG9zdHMvJHtmb3JtYXRJdGVtSWR9YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpdGVtRG9jSWQgPSAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSB2YWxpZCBpdGVtIGRvYyBpZCwgY3JlYXRlIGFuIGVkZ2VcbiAgICAgICAgICAgIGlmKGl0ZW1Eb2NJZCkge1xuICAgICAgICAgICAgICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZSkuY29sbGVjdGlvbignaGFzTG9jYXRpb24nKTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25JZDogc3RyaW5nID0gdXBkYXRlZExvY2F0aW9uS2V5O1xuICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbkRvY0lkOiBzdHJpbmcgPSBgbG9jYXRpb25zLyR7bG9jYXRpb25JZH1gO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlSWQgPSBjcmVhdGVIYXNoKGBoYXNMb2NhdGlvbi0ke2xvY2F0aW9uSWR9LSR7c2Vzc2lvbklkfWApO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlOiBhbnkgPSB7X2Zyb206IGl0ZW1Eb2NJZCwgX2tleTogZWRnZUlkLCBfdG86IGxvY2F0aW9uRG9jSWR9O1xuXG4gICAgICAgICAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IHVwZGF0ZWRMb2NhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHJldHVybiB0aGUgbmV3IGxvY2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZExvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9KTtcbn07XG4iXX0=
|
package/lib/data/messages.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ApiContext } from '../types/auth';
|
|
2
|
-
import { MessageInputType, MessageType } from '../types/messages';
|
|
3
|
-
export declare const getMessageList: (context: ApiContext, convoId: string, from: number, to: number) => Promise<MessageType[]>;
|
|
4
|
-
export declare const updateMessage: (context: ApiContext, message: MessageInputType) => Promise<MessageType>;
|
|
5
|
-
export declare const saveMessage: (context: ApiContext, msgId: string, convoId: string) => Promise<MessageType>;
|
|
6
|
-
export declare const unsaveMessage: (context: ApiContext, msgId: string, convoId: string) => Promise<MessageType>;
|
|
7
|
-
export declare const deleteMessage: (context: ApiContext, msgId: string, convoId: string) => Promise<MessageType>;
|
|
8
|
-
export declare const getMessage: (data: MessageType) => MessageType;
|
|
9
|
-
export declare const cleanMessages: (database: string) => Promise<number>;
|
package/lib/data/messages.js
DELETED
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.array.concat");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/es.array.filter");
|
|
8
|
-
|
|
9
|
-
require("core-js/modules/es.array.for-each");
|
|
10
|
-
|
|
11
|
-
require("core-js/modules/es.array.slice");
|
|
12
|
-
|
|
13
|
-
require("core-js/modules/es.date.now");
|
|
14
|
-
|
|
15
|
-
require("core-js/modules/es.date.to-string");
|
|
16
|
-
|
|
17
|
-
require("core-js/modules/es.object.define-properties");
|
|
18
|
-
|
|
19
|
-
require("core-js/modules/es.object.define-property");
|
|
20
|
-
|
|
21
|
-
require("core-js/modules/es.object.freeze");
|
|
22
|
-
|
|
23
|
-
require("core-js/modules/es.object.get-own-property-descriptor");
|
|
24
|
-
|
|
25
|
-
require("core-js/modules/es.object.get-own-property-descriptors");
|
|
26
|
-
|
|
27
|
-
require("core-js/modules/es.object.keys");
|
|
28
|
-
|
|
29
|
-
require("core-js/modules/web.dom-collections.for-each");
|
|
30
|
-
|
|
31
|
-
Object.defineProperty(exports, "__esModule", {
|
|
32
|
-
value: true
|
|
33
|
-
});
|
|
34
|
-
exports.cleanMessages = exports.getMessage = exports.deleteMessage = exports.unsaveMessage = exports.saveMessage = exports.updateMessage = exports.getMessageList = void 0;
|
|
35
|
-
|
|
36
|
-
var _utils = require("@nlabs/utils");
|
|
37
|
-
|
|
38
|
-
var _arangojs = require("arangojs");
|
|
39
|
-
|
|
40
|
-
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
41
|
-
|
|
42
|
-
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
43
|
-
|
|
44
|
-
var _utils2 = require("../utils");
|
|
45
|
-
|
|
46
|
-
var _conversations = require("./conversations");
|
|
47
|
-
|
|
48
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
49
|
-
|
|
50
|
-
function _templateObject6() {
|
|
51
|
-
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && LENGTH(m.saved) > 0\n REMOVE m IN messages\n RETURN OLD"]);
|
|
52
|
-
|
|
53
|
-
_templateObject6 = function _templateObject6() {
|
|
54
|
-
return data;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
return data;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function _templateObject5() {
|
|
61
|
-
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m._key == ", " && m.to == ", " && m.from == ", "\n REMOVE m IN messages\n RETURN OLD"]);
|
|
62
|
-
|
|
63
|
-
_templateObject5 = function _templateObject5() {
|
|
64
|
-
return data;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
return data;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function _templateObject4() {
|
|
71
|
-
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m._key == ", " && m.to == ", "\n UPDATE m WITH {saved: REMOVE_VALUE(m.saved, ", ")} IN messages\n RETURN NEW"]);
|
|
72
|
-
|
|
73
|
-
_templateObject4 = function _templateObject4() {
|
|
74
|
-
return data;
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
return data;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function _templateObject3() {
|
|
81
|
-
var data = _taggedTemplateLiteral(["FOR m IN messages\n FILTER m._key == ", " && m.to == ", "\n UPDATE m WITH {saved: APPEND(m.saved, ", ", true)} IN messages\n RETURN NEW"]);
|
|
82
|
-
|
|
83
|
-
_templateObject3 = function _templateObject3() {
|
|
84
|
-
return data;
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
return data;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function _templateObject2() {
|
|
91
|
-
var data = _taggedTemplateLiteral(["UPSERT {_key: ", ", convoId: ", ", userId: ", "}\n INSERT ", "\n UPDATE ", " IN messages\n RETURN NEW"]);
|
|
92
|
-
|
|
93
|
-
_templateObject2 = function _templateObject2() {
|
|
94
|
-
return data;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
return data;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
101
|
-
|
|
102
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
103
|
-
|
|
104
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
105
|
-
|
|
106
|
-
function _templateObject() {
|
|
107
|
-
var data = _taggedTemplateLiteral(["FOR e IN hasConversations\n FILTER e._from == ", " && e._to == ", "\n LIMIT 1\n RETURN e"]);
|
|
108
|
-
|
|
109
|
-
_templateObject = function _templateObject() {
|
|
110
|
-
return data;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
return data;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
117
|
-
|
|
118
|
-
// const eventCategory: string = 'messages';
|
|
119
|
-
var getMessageList = function getMessageList(context, convoId, from, to) {
|
|
120
|
-
var database = context.database,
|
|
121
|
-
sessionId = context.userId;
|
|
122
|
-
var formatConvoId = (0, _utils.parseId)(convoId);
|
|
123
|
-
var sessionDocId = "users/".concat(sessionId);
|
|
124
|
-
var convoDocId = "conversations/".concat(formatConvoId);
|
|
125
|
-
var convoQry = (0, _arangojs.aql)(_templateObject(), sessionDocId, convoDocId);
|
|
126
|
-
return (0, _utils2.useDb)(database).query(convoQry).then(function (cursor) {
|
|
127
|
-
return cursor.all();
|
|
128
|
-
}).then(function (conversations) {
|
|
129
|
-
if (!conversations.length) {
|
|
130
|
-
return [];
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
var limit = (0, _utils2.getLimit)(from, to);
|
|
134
|
-
var aqlQry = "FOR m IN messages\n FILTER m.convoId == \"".concat(formatConvoId, "\"\n SORT m.added DESC\n ").concat(limit.aql, "\n SORT m.added ASC\n LET user = FIRST(\n FOR u IN users\n FILTER u._key == m.userId\n LIMIT 1\n RETURN u\n )\n RETURN MERGE(m, {user: user})");
|
|
135
|
-
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
136
|
-
return cursor.all();
|
|
137
|
-
})["catch"](function (error) {
|
|
138
|
-
throw error;
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
exports.getMessageList = getMessageList;
|
|
144
|
-
|
|
145
|
-
var updateMessage = function updateMessage(context, message) {
|
|
146
|
-
var database = context.database,
|
|
147
|
-
sessionId = context.userId;
|
|
148
|
-
var convoId = message.convoId,
|
|
149
|
-
files = message.files,
|
|
150
|
-
images = message.images,
|
|
151
|
-
_message$msgId = message.msgId,
|
|
152
|
-
msgId = _message$msgId === void 0 ? (0, _utils.createHash)("message-".concat(sessionId)) : _message$msgId;
|
|
153
|
-
var formatConvoId = (0, _utils.parseId)(convoId);
|
|
154
|
-
|
|
155
|
-
if (formatConvoId === '') {
|
|
156
|
-
throw new Error('required_convoId');
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
var now = Date.now();
|
|
160
|
-
var update = {
|
|
161
|
-
content: (0, _utils.parseVarChar)(message.content, 640),
|
|
162
|
-
files: files || [],
|
|
163
|
-
images: images || [],
|
|
164
|
-
modified: now
|
|
165
|
-
};
|
|
166
|
-
var formatMsgId = (0, _utils.parseId)(msgId);
|
|
167
|
-
|
|
168
|
-
var insert = _objectSpread(_objectSpread({}, (0, _cloneDeep["default"])(update)), {}, {
|
|
169
|
-
_key: formatMsgId,
|
|
170
|
-
added: now,
|
|
171
|
-
convoId: formatConvoId,
|
|
172
|
-
userId: sessionId
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
var aqlQry = (0, _arangojs.aql)(_templateObject2(), formatMsgId, formatConvoId, sessionId, insert, update);
|
|
176
|
-
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
177
|
-
return cursor.next();
|
|
178
|
-
})["catch"](function (error) {
|
|
179
|
-
throw error;
|
|
180
|
-
});
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
exports.updateMessage = updateMessage;
|
|
184
|
-
|
|
185
|
-
var saveMessage = function saveMessage(context, msgId, convoId) {
|
|
186
|
-
var database = context.database,
|
|
187
|
-
sessionId = context.userId;
|
|
188
|
-
var formatId = (0, _utils.parseId)(msgId);
|
|
189
|
-
return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
|
|
190
|
-
var conversationKey = conversation._key;
|
|
191
|
-
var aqlQry = (0, _arangojs.aql)(_templateObject3(), formatId, conversationKey, sessionId);
|
|
192
|
-
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
193
|
-
return cursor.next();
|
|
194
|
-
}).then(function () {
|
|
195
|
-
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
196
|
-
|
|
197
|
-
if (!(0, _isEmpty["default"])(message)) {// Broadcast to message box
|
|
198
|
-
// const msg: MessageType = Messages.getMessageObject(message);
|
|
199
|
-
// io.to(message.toId).emit('message_save', msg);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
return message;
|
|
203
|
-
})["catch"](function (error) {
|
|
204
|
-
throw error;
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
};
|
|
208
|
-
|
|
209
|
-
exports.saveMessage = saveMessage;
|
|
210
|
-
|
|
211
|
-
var unsaveMessage = function unsaveMessage(context, msgId, convoId) {
|
|
212
|
-
var database = context.database,
|
|
213
|
-
sessionId = context.userId;
|
|
214
|
-
var formatId = (0, _utils.parseId)(msgId);
|
|
215
|
-
return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
|
|
216
|
-
var conversationKey = conversation._key;
|
|
217
|
-
var aqlQry = (0, _arangojs.aql)(_templateObject4(), formatId, conversationKey, sessionId);
|
|
218
|
-
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
219
|
-
return cursor.next();
|
|
220
|
-
}).then(function () {
|
|
221
|
-
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
222
|
-
|
|
223
|
-
if (!(0, _isEmpty["default"])(message)) {// Broadcast to message box
|
|
224
|
-
// const msg: MessageType = Messages.getMessageObject(message);
|
|
225
|
-
// io.to(message.id).emit('message_unsave', msg);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return message;
|
|
229
|
-
})["catch"](function (error) {
|
|
230
|
-
throw error;
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
exports.unsaveMessage = unsaveMessage;
|
|
236
|
-
|
|
237
|
-
var deleteMessage = function deleteMessage(context, msgId, convoId) {
|
|
238
|
-
var database = context.database,
|
|
239
|
-
sessionId = context.userId;
|
|
240
|
-
var formatId = (0, _utils.parseId)(msgId);
|
|
241
|
-
return (0, _conversations.getConversation)(context, convoId).then(function (conversation) {
|
|
242
|
-
var conversationKey = conversation._key;
|
|
243
|
-
var aqlQry = (0, _arangojs.aql)(_templateObject5(), formatId, conversationKey, sessionId);
|
|
244
|
-
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
245
|
-
return cursor.next();
|
|
246
|
-
}).then(function () {
|
|
247
|
-
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
248
|
-
|
|
249
|
-
if (!(0, _isEmpty["default"])(message)) {// Broadcast to message box
|
|
250
|
-
// const msg: MessageType = Messages.getMessageObject(message);
|
|
251
|
-
// io.to(message.toId).emit('message_delete', msg);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
return message;
|
|
255
|
-
})["catch"](function (error) {
|
|
256
|
-
throw error;
|
|
257
|
-
});
|
|
258
|
-
});
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
exports.deleteMessage = deleteMessage;
|
|
262
|
-
|
|
263
|
-
var getMessage = function getMessage(data) {
|
|
264
|
-
var added = data.added,
|
|
265
|
-
content = data.content,
|
|
266
|
-
convoId = data.convoId,
|
|
267
|
-
files = data.files,
|
|
268
|
-
msgId = data._key,
|
|
269
|
-
read = data.read,
|
|
270
|
-
saved = data.saved,
|
|
271
|
-
userId = data.userId;
|
|
272
|
-
return {
|
|
273
|
-
added: added,
|
|
274
|
-
content: content,
|
|
275
|
-
convoId: convoId,
|
|
276
|
-
files: files,
|
|
277
|
-
msgId: msgId,
|
|
278
|
-
read: read,
|
|
279
|
-
saved: saved,
|
|
280
|
-
userId: userId
|
|
281
|
-
};
|
|
282
|
-
};
|
|
283
|
-
|
|
284
|
-
exports.getMessage = getMessage;
|
|
285
|
-
|
|
286
|
-
var cleanMessages = function cleanMessages(database) {
|
|
287
|
-
// Remove all messages that are over 60 days and not saved
|
|
288
|
-
var aqlQry = (0, _arangojs.aql)(_templateObject6());
|
|
289
|
-
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
290
|
-
return cursor.all();
|
|
291
|
-
}).then(function (list) {
|
|
292
|
-
return list.length;
|
|
293
|
-
})["catch"](function (error) {
|
|
294
|
-
throw error;
|
|
295
|
-
});
|
|
296
|
-
};
|
|
297
|
-
|
|
298
|
-
exports.cleanMessages = cleanMessages;
|
|
299
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbImdldE1lc3NhZ2VMaXN0IiwiY29udGV4dCIsImNvbnZvSWQiLCJmcm9tIiwidG8iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImZvcm1hdENvbnZvSWQiLCJzZXNzaW9uRG9jSWQiLCJjb252b0RvY0lkIiwiY29udm9RcnkiLCJhcWwiLCJxdWVyeSIsInRoZW4iLCJjdXJzb3IiLCJhbGwiLCJjb252ZXJzYXRpb25zIiwibGVuZ3RoIiwibGltaXQiLCJhcWxRcnkiLCJlcnJvciIsInVwZGF0ZU1lc3NhZ2UiLCJtZXNzYWdlIiwiZmlsZXMiLCJpbWFnZXMiLCJtc2dJZCIsIkVycm9yIiwibm93IiwiRGF0ZSIsInVwZGF0ZSIsImNvbnRlbnQiLCJtb2RpZmllZCIsImZvcm1hdE1zZ0lkIiwiaW5zZXJ0IiwiX2tleSIsImFkZGVkIiwibmV4dCIsInNhdmVNZXNzYWdlIiwiZm9ybWF0SWQiLCJjb252ZXJzYXRpb24iLCJjb252ZXJzYXRpb25LZXkiLCJ1bnNhdmVNZXNzYWdlIiwiZGVsZXRlTWVzc2FnZSIsImdldE1lc3NhZ2UiLCJkYXRhIiwicmVhZCIsInNhdmVkIiwiY2xlYW5NZXNzYWdlcyIsImxpc3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBTUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBO0FBRU8sSUFBTUEsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUM1QkMsT0FENEIsRUFFNUJDLE9BRjRCLEVBRzVCQyxJQUg0QixFQUk1QkMsRUFKNEIsRUFLRDtBQUFBLE1BQ3BCQyxRQURvQixHQUNXSixPQURYLENBQ3BCSSxRQURvQjtBQUFBLE1BQ0ZDLFNBREUsR0FDV0wsT0FEWCxD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TUFRMURDLEtBUjBELEdBVXhERixJQVZ3RCxDQVExREUsS0FSMEQ7QUFBQSxNQVMxRHhDLE1BVDBELEdBVXhEc0MsSUFWd0QsQ0FTMUR0QyxNQVQwRDtBQVk1RCxTQUFPO0FBQ0w2QixJQUFBQSxLQUFLLEVBQUxBLEtBREs7QUFFTEwsSUFBQUEsT0FBTyxFQUFQQSxPQUZLO0FBR0w3QixJQUFBQSxPQUFPLEVBQVBBLE9BSEs7QUFJTHNCLElBQUFBLEtBQUssRUFBTEEsS0FKSztBQUtMRSxJQUFBQSxLQUFLLEVBQUxBLEtBTEs7QUFNTG9CLElBQUFBLElBQUksRUFBSkEsSUFOSztBQU9MQyxJQUFBQSxLQUFLLEVBQUxBLEtBUEs7QUFRTHhDLElBQUFBLE1BQU0sRUFBTkE7QUFSSyxHQUFQO0FBVUQsQ0F0Qk07Ozs7QUF3QkEsSUFBTXlDLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQzNDLFFBQUQsRUFBdUM7QUFDbEU7QUFDQSxNQUFNZSxNQUFNLE9BQUdSLGFBQUgscUJBQVo7QUFLQSxTQUFPLG1CQUFNUCxRQUFOLEVBQWdCUSxLQUFoQixDQUFzQk8sTUFBdEIsRUFDSk4sSUFESSxDQUNDLFVBQUNDLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDQyxHQUFQLEVBQXpCO0FBQUEsR0FERCxFQUVKRixJQUZJLENBRUMsVUFBQ21DLElBQUQ7QUFBQSxXQUF5QkEsSUFBSSxDQUFDL0IsTUFBOUI7QUFBQSxHQUZELFdBR0UsVUFBQ0csS0FBRCxFQUFrQjtBQUN2QixVQUFNQSxLQUFOO0FBQ0QsR0FMSSxDQUFQO0FBTUQsQ0FiTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlVmFyQ2hhcn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvY3Vyc29yJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGInO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucyc7XG5pbXBvcnQge01lc3NhZ2VJbnB1dFR5cGUsIE1lc3NhZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9tZXNzYWdlcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtnZXRDb252ZXJzYXRpb259IGZyb20gJy4vY29udmVyc2F0aW9ucyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdtZXNzYWdlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRNZXNzYWdlTGlzdCA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udm9JZDogc3RyaW5nLFxuICBmcm9tOiBudW1iZXIsXG4gIHRvOiBudW1iZXJcbik6IFByb21pc2U8TWVzc2FnZVR5cGVbXT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7Zm9ybWF0Q29udm9JZH1gO1xuXG4gIGNvbnN0IGNvbnZvUXJ5ID0gYXFsYEZPUiBlIElOIGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgZS5fZnJvbSA9PSAke3Nlc3Npb25Eb2NJZH0gJiYgZS5fdG8gPT0gJHtjb252b0RvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gZWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShjb252b1FyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb25zKSA9PiB7XG4gICAgICBpZighY29udmVyc2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgICAgIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgICAgRklMVEVSIG0uY29udm9JZCA9PSBcIiR7Zm9ybWF0Q29udm9JZH1cIlxuICAgICAgICAgIFNPUlQgbS5hZGRlZCBERVNDXG4gICAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgICAgU09SVCBtLmFkZGVkIEFTQ1xuICAgICAgICAgIExFVCB1c2VyID0gRklSU1QoXG4gICAgICAgICAgICBGT1IgdSBJTiB1c2Vyc1xuICAgICAgICAgICAgRklMVEVSIHUuX2tleSA9PSBtLnVzZXJJZFxuICAgICAgICAgICAgTElNSVQgMVxuICAgICAgICAgICAgUkVUVVJOIHVcbiAgICAgICAgICApXG4gICAgICAgICAgUkVUVVJOIE1FUkdFKG0sIHt1c2VyOiB1c2VyfSlgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlOiBNZXNzYWdlSW5wdXRUeXBlKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBjb252b0lkLFxuICAgIGZpbGVzLFxuICAgIGltYWdlcyxcbiAgICBtc2dJZCA9IGNyZWF0ZUhhc2goYG1lc3NhZ2UtJHtzZXNzaW9uSWR9YClcbiAgfSA9IG1lc3NhZ2U7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG5cbiAgaWYoZm9ybWF0Q29udm9JZCA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlcXVpcmVkX2NvbnZvSWQnKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdXBkYXRlOiBNZXNzYWdlVHlwZSA9IHtcbiAgICBjb250ZW50OiBwYXJzZVZhckNoYXIobWVzc2FnZS5jb250ZW50LCA2NDApLFxuICAgIGZpbGVzOiBmaWxlcyB8fCBbXSxcbiAgICBpbWFnZXM6IGltYWdlcyB8fCBbXSxcbiAgICBtb2RpZmllZDogbm93XG4gIH07XG4gIGNvbnN0IGZvcm1hdE1zZ0lkOiBzdHJpbmcgPSBwYXJzZUlkKG1zZ0lkKTtcbiAgY29uc3QgaW5zZXJ0OiBNZXNzYWdlVHlwZSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRNc2dJZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGNvbnZvSWQ6IGZvcm1hdENvbnZvSWQsXG4gICAgdXNlcklkOiBzZXNzaW9uSWRcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7Zm9ybWF0TXNnSWR9LCBjb252b0lkOiAke2Zvcm1hdENvbnZvSWR9LCB1c2VySWQ6ICR7c2Vzc2lvbklkfX1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfSBJTiBtZXNzYWdlc1xuICAgIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBBUFBFTkQobS5zYXZlZCwgJHtzZXNzaW9uSWR9LCB0cnVlKX0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0ge30pID0+IHtcbiAgICAgICAgICBpZighaXNFbXB0eShtZXNzYWdlKSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtc2c6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9zYXZlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdW5zYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtc2dJZDogc3RyaW5nLCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobXNnSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udm9JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgICAgVVBEQVRFIG0gV0lUSCB7c2F2ZWQ6IFJFTU9WRV9WQUxVRShtLnNhdmVkLCAke3Nlc3Npb25JZH0pfSBJTiBtZXNzYWdlc1xuICAgICAgICAgIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgaWYoIWlzRW1wdHkobWVzc2FnZSkpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbXNnOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLmlkKS5lbWl0KCdtZXNzYWdlX3Vuc2F2ZScsIG1zZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbXNnSWQ6IHN0cmluZywgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1zZ0lkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGNvbnZvSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgRklMVEVSIG0uX2tleSA9PSAke2Zvcm1hdElkfSAmJiBtLnRvID09ICR7Y29udmVyc2F0aW9uS2V5fSAmJiBtLmZyb20gPT0gJHtzZXNzaW9uSWR9XG4gICAgICAgIFJFTU9WRSBtIElOIG1lc3NhZ2VzXG4gICAgICAgIFJFVFVSTiBPTERgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgaWYoIWlzRW1wdHkobWVzc2FnZSkpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbXNnOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLnRvSWQpLmVtaXQoJ21lc3NhZ2VfZGVsZXRlJywgbXNnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVzc2FnZSA9IChkYXRhOiBNZXNzYWdlVHlwZSk6IE1lc3NhZ2VUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIGFkZGVkLFxuICAgIGNvbnRlbnQsXG4gICAgY29udm9JZCxcbiAgICBmaWxlcyxcbiAgICBfa2V5OiBtc2dJZCxcbiAgICByZWFkLFxuICAgIHNhdmVkLFxuICAgIHVzZXJJZFxuICB9ID0gZGF0YTtcblxuICByZXR1cm4ge1xuICAgIGFkZGVkLFxuICAgIGNvbnRlbnQsXG4gICAgY29udm9JZCxcbiAgICBmaWxlcyxcbiAgICBtc2dJZCxcbiAgICByZWFkLFxuICAgIHNhdmVkLFxuICAgIHVzZXJJZFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFuTWVzc2FnZXMgPSAoZGF0YWJhc2U6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIC8vIFJlbW92ZSBhbGwgbWVzc2FnZXMgdGhhdCBhcmUgb3ZlciA2MCBkYXlzIGFuZCBub3Qgc2F2ZWRcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICBGSUxURVIgbS5hZGRlZCA8IERBVEVfVElNRVNUQU1QKERBVEVfU1VCVFJBQ1QoREFURV9OT1coKSwgNjAsICdkYXknKSkgJiYgTEVOR1RIKG0uc2F2ZWQpID4gMFxuICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLnRoZW4oKGxpc3Q6IE1lc3NhZ2VUeXBlW10pID0+IGxpc3QubGVuZ3RoKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.clearBadges = exports.pushNotification = exports.getApnProvider = void 0;
|
|
7
|
-
|
|
8
|
-
var _apn = require("apn");
|
|
9
|
-
|
|
10
|
-
var _config = require("../config");
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
14
|
-
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
15
|
-
*/
|
|
16
|
-
// const eventCategory: string = 'notifications';
|
|
17
|
-
// Push Notifications
|
|
18
|
-
var getApnProvider = function getApnProvider() {
|
|
19
|
-
return new _apn.Provider({
|
|
20
|
-
ca: _config.Config.get('app.apn.ca'),
|
|
21
|
-
cert: _config.Config.get('app.apn.cert'),
|
|
22
|
-
key: _config.Config.get('app.apn.key'),
|
|
23
|
-
production: _config.Config.get('environment') === 'prod'
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
exports.getApnProvider = getApnProvider;
|
|
28
|
-
|
|
29
|
-
var pushNotification = function pushNotification(deviceTokens, note) {
|
|
30
|
-
// Push notification to device
|
|
31
|
-
var provider = getApnProvider();
|
|
32
|
-
var notification = new _apn.Notification();
|
|
33
|
-
notification.topic = _config.Config.get('app.apn.id');
|
|
34
|
-
notification.alert = note.message;
|
|
35
|
-
|
|
36
|
-
if (note.data) {
|
|
37
|
-
notification.mutableContent = true;
|
|
38
|
-
notification.payload = note.data;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (note.badge !== undefined) {
|
|
42
|
-
notification.badge = note.badge;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return provider.send(notification, deviceTokens);
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
exports.pushNotification = pushNotification;
|
|
49
|
-
|
|
50
|
-
var clearBadges = function clearBadges(deviceTokens) {
|
|
51
|
-
// Push notification to device
|
|
52
|
-
var provider = getApnProvider();
|
|
53
|
-
var notification = new _apn.Notification();
|
|
54
|
-
notification.badge = 0;
|
|
55
|
-
return provider.send(notification, deviceTokens);
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
exports.clearBadges = clearBadges;
|
|
59
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL25vdGlmaWNhdGlvbnMudHMiXSwibmFtZXMiOlsiZ2V0QXBuUHJvdmlkZXIiLCJQcm92aWRlciIsImNhIiwiQ29uZmlnIiwiZ2V0IiwiY2VydCIsImtleSIsInByb2R1Y3Rpb24iLCJwdXNoTm90aWZpY2F0aW9uIiwiZGV2aWNlVG9rZW5zIiwibm90ZSIsInByb3ZpZGVyIiwibm90aWZpY2F0aW9uIiwiQVBOTm90aWZpY2F0aW9uIiwidG9waWMiLCJhbGVydCIsIm1lc3NhZ2UiLCJkYXRhIiwibXV0YWJsZUNvbnRlbnQiLCJwYXlsb2FkIiwiYmFkZ2UiLCJ1bmRlZmluZWQiLCJzZW5kIiwiY2xlYXJCYWRnZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQTs7QUFFQTs7QUFOQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBRUE7QUFDTyxJQUFNQSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCO0FBQUEsU0FBZ0IsSUFBSUMsYUFBSixDQUFhO0FBQ3pEQyxJQUFBQSxFQUFFLEVBQUVDLGVBQU9DLEdBQVAsQ0FBVyxZQUFYLENBRHFEO0FBRXpEQyxJQUFBQSxJQUFJLEVBQUVGLGVBQU9DLEdBQVAsQ0FBVyxjQUFYLENBRm1EO0FBR3pERSxJQUFBQSxHQUFHLEVBQUVILGVBQU9DLEdBQVAsQ0FBVyxhQUFYLENBSG9EO0FBSXpERyxJQUFBQSxVQUFVLEVBQUVKLGVBQU9DLEdBQVAsQ0FBVyxhQUFYLE1BQThCO0FBSmUsR0FBYixDQUFoQjtBQUFBLENBQXZCOzs7O0FBT0EsSUFBTUksZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDQyxZQUFELEVBQXlCQyxJQUF6QixFQUF3RTtBQUN0RztBQUNBLE1BQU1DLFFBQWtCLEdBQUdYLGNBQWMsRUFBekM7QUFDQSxNQUFNWSxZQUE2QixHQUFHLElBQUlDLGlCQUFKLEVBQXRDO0FBQ0FELEVBQUFBLFlBQVksQ0FBQ0UsS0FBYixHQUFxQlgsZUFBT0MsR0FBUCxDQUFXLFlBQVgsQ0FBckI7QUFDQVEsRUFBQUEsWUFBWSxDQUFDRyxLQUFiLEdBQXFCTCxJQUFJLENBQUNNLE9BQTFCOztBQUVBLE1BQUdOLElBQUksQ0FBQ08sSUFBUixFQUFjO0FBQ1pMLElBQUFBLFlBQVksQ0FBQ00sY0FBYixHQUE4QixJQUE5QjtBQUNBTixJQUFBQSxZQUFZLENBQUNPLE9BQWIsR0FBdUJULElBQUksQ0FBQ08sSUFBNUI7QUFDRDs7QUFFRCxNQUFHUCxJQUFJLENBQUNVLEtBQUwsS0FBZUMsU0FBbEIsRUFBNkI7QUFDM0JULElBQUFBLFlBQVksQ0FBQ1EsS0FBYixHQUFxQlYsSUFBSSxDQUFDVSxLQUExQjtBQUNEOztBQUVELFNBQU9ULFFBQVEsQ0FBQ1csSUFBVCxDQUFjVixZQUFkLEVBQTRCSCxZQUE1QixDQUFQO0FBQ0QsQ0FqQk07Ozs7QUFtQkEsSUFBTWMsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ2QsWUFBRCxFQUFnRDtBQUN6RTtBQUNBLE1BQU1FLFFBQVEsR0FBR1gsY0FBYyxFQUEvQjtBQUNBLE1BQU1ZLFlBQVksR0FBRyxJQUFJQyxpQkFBSixFQUFyQjtBQUNBRCxFQUFBQSxZQUFZLENBQUNRLEtBQWIsR0FBcUIsQ0FBckI7QUFFQSxTQUFPVCxRQUFRLENBQUNXLElBQVQsQ0FBY1YsWUFBZCxFQUE0QkgsWUFBNUIsQ0FBUDtBQUNELENBUE0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtOb3RpZmljYXRpb24gYXMgQVBOTm90aWZpY2F0aW9uLCBQcm92aWRlciwgUmVzcG9uc2VzfSBmcm9tICdhcG4nO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvbm90aWZpY2F0aW9ucyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdub3RpZmljYXRpb25zJztcblxuLy8gUHVzaCBOb3RpZmljYXRpb25zXG5leHBvcnQgY29uc3QgZ2V0QXBuUHJvdmlkZXIgPSAoKTogUHJvdmlkZXIgPT4gbmV3IFByb3ZpZGVyKHtcbiAgY2E6IENvbmZpZy5nZXQoJ2FwcC5hcG4uY2EnKSxcbiAgY2VydDogQ29uZmlnLmdldCgnYXBwLmFwbi5jZXJ0JyksXG4gIGtleTogQ29uZmlnLmdldCgnYXBwLmFwbi5rZXknKSxcbiAgcHJvZHVjdGlvbjogQ29uZmlnLmdldCgnZW52aXJvbm1lbnQnKSA9PT0gJ3Byb2QnXG59KTtcblxuZXhwb3J0IGNvbnN0IHB1c2hOb3RpZmljYXRpb24gPSAoZGV2aWNlVG9rZW5zOiBzdHJpbmdbXSwgbm90ZTogTm90aWZpY2F0aW9uVHlwZSk6IFByb21pc2U8UmVzcG9uc2VzPiA9PiB7XG4gIC8vIFB1c2ggbm90aWZpY2F0aW9uIHRvIGRldmljZVxuICBjb25zdCBwcm92aWRlcjogUHJvdmlkZXIgPSBnZXRBcG5Qcm92aWRlcigpO1xuICBjb25zdCBub3RpZmljYXRpb246IEFQTk5vdGlmaWNhdGlvbiA9IG5ldyBBUE5Ob3RpZmljYXRpb24oKTtcbiAgbm90aWZpY2F0aW9uLnRvcGljID0gQ29uZmlnLmdldCgnYXBwLmFwbi5pZCcpO1xuICBub3RpZmljYXRpb24uYWxlcnQgPSBub3RlLm1lc3NhZ2U7XG5cbiAgaWYobm90ZS5kYXRhKSB7XG4gICAgbm90aWZpY2F0aW9uLm11dGFibGVDb250ZW50ID0gdHJ1ZTtcbiAgICBub3RpZmljYXRpb24ucGF5bG9hZCA9IG5vdGUuZGF0YTtcbiAgfVxuXG4gIGlmKG5vdGUuYmFkZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIG5vdGlmaWNhdGlvbi5iYWRnZSA9IG5vdGUuYmFkZ2U7XG4gIH1cblxuICByZXR1cm4gcHJvdmlkZXIuc2VuZChub3RpZmljYXRpb24sIGRldmljZVRva2Vucyk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJCYWRnZXMgPSAoZGV2aWNlVG9rZW5zOiBzdHJpbmdbXSk6IFByb21pc2U8UmVzcG9uc2VzPiA9PiB7XG4gIC8vIFB1c2ggbm90aWZpY2F0aW9uIHRvIGRldmljZVxuICBjb25zdCBwcm92aWRlciA9IGdldEFwblByb3ZpZGVyKCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbiA9IG5ldyBBUE5Ob3RpZmljYXRpb24oKTtcbiAgbm90aWZpY2F0aW9uLmJhZGdlID0gMDtcblxuICByZXR1cm4gcHJvdmlkZXIuc2VuZChub3RpZmljYXRpb24sIGRldmljZVRva2Vucyk7XG59O1xuIl19
|