@nlabs/reaktor 0.1.12 → 0.1.14
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/config.js +138 -0
- package/lib/data/conversations.js +228 -0
- package/lib/data/dynamodb.js +172 -0
- package/lib/data/email.js +194 -0
- package/lib/data/files.js +463 -0
- package/lib/data/groups.js +401 -0
- package/lib/data/images.js +841 -0
- package/lib/data/index.js +234 -0
- package/lib/data/ios.js +327 -0
- package/lib/data/locations.js +148 -0
- package/lib/data/messages.js +281 -0
- package/lib/data/notifications.js +59 -0
- package/lib/data/payments.js +798 -0
- package/lib/data/posts.js +637 -0
- package/lib/data/reactions.js +243 -0
- package/lib/data/s3.js +133 -0
- package/lib/data/search.js +111 -0
- package/lib/data/sms.js +79 -0
- package/lib/data/subscription.js +311 -0
- package/lib/data/tags.js +343 -0
- package/lib/data/users.js +415 -0
- package/lib/index.js +42 -0
- package/lib/types/apps.js +2 -0
- package/lib/types/arangodb.js +2 -0
- package/lib/types/auth.js +2 -0
- package/lib/types/conversations.js +2 -0
- package/lib/types/email.js +2 -0
- package/lib/types/files.js +2 -0
- package/lib/types/google.js +2 -0
- package/lib/types/groups.js +2 -0
- package/lib/types/images.js +2 -0
- package/lib/types/index.js +210 -0
- package/lib/types/locations.js +2 -0
- package/lib/types/messages.js +2 -0
- package/lib/types/notifications.js +2 -0
- package/lib/types/payments.js +2 -0
- package/lib/types/posts.js +2 -0
- package/lib/types/reactions.js +2 -0
- package/lib/types/tags.js +2 -0
- package/lib/types/users.js +2 -0
- package/lib/utils/analytics.js +59 -0
- package/lib/utils/arangodb.d.ts +0 -1
- package/lib/utils/arangodb.js +122 -0
- package/lib/utils/auth.d.ts +0 -2
- package/lib/utils/auth.js +55 -0
- package/lib/utils/graphql.js +19 -0
- package/lib/utils/index.js +78 -0
- package/lib/utils/objects.js +54 -0
- package/lib/utils/redis.js +28 -0
- package/package.json +7 -7
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.postReaction = exports.getUsersByReaction = exports.getReactionsByUser = exports.getGroupReactions = exports.addGroupReaction = void 0;
|
|
7
|
+
|
|
8
|
+
var _utils = require("@nlabs/utils");
|
|
9
|
+
|
|
10
|
+
var _arangojs = require("arangojs");
|
|
11
|
+
|
|
12
|
+
var _utils2 = require("../utils");
|
|
13
|
+
|
|
14
|
+
function _templateObject4() {
|
|
15
|
+
var data = _taggedTemplateLiteral(["LET reactions = (\n FOR post, r IN INBOUND p._id reactions\n COLLECT reactionName = r.value INTO reactionItems\n RETURN {id: p._id, type: reactionName, count: LENGTH(reactionItems[*].r.value)}\n )\n RETURN reactions"]);
|
|
16
|
+
|
|
17
|
+
_templateObject4 = function _templateObject4() {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function _templateObject3() {
|
|
25
|
+
var data = _taggedTemplateLiteral(["FOR p, r IN INBOUND ", " reaction\n FILTER r.type == \"posts\" && r._from == ", "\n REMOVE r IN reactions\n RETURN r"]);
|
|
26
|
+
|
|
27
|
+
_templateObject3 = function _templateObject3() {
|
|
28
|
+
return data;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function _templateObject2() {
|
|
35
|
+
var data = _taggedTemplateLiteral(["FOR g, r IN INBOUND ", " hasReaction\n FILTER r._from == ", "\n COLLECT reactionName = r.value INTO reactionItems\n RETURN {value: reactionName, count: LENGTH(reactionItems[*].r.value)}"]);
|
|
36
|
+
|
|
37
|
+
_templateObject2 = function _templateObject2() {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function _templateObject() {
|
|
45
|
+
var data = _taggedTemplateLiteral(["FOR g, r IN INBOUND ", " hasReaction\n COLLECT reactionName = r.value INTO reactionItems\n RETURN {value: reactionName, count: LENGTH(reactionItems[*].r.value)}"]);
|
|
46
|
+
|
|
47
|
+
_templateObject = function _templateObject() {
|
|
48
|
+
return data;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
55
|
+
|
|
56
|
+
var eventCategory = 'reactions';
|
|
57
|
+
|
|
58
|
+
var addGroupReaction = function addGroupReaction(context) {
|
|
59
|
+
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
60
|
+
var action = 'reaction';
|
|
61
|
+
var database = context.database,
|
|
62
|
+
sessionId = context.userId;
|
|
63
|
+
|
|
64
|
+
if (!sessionId) {
|
|
65
|
+
return (0, _utils2.logException)({
|
|
66
|
+
action: action,
|
|
67
|
+
category: eventCategory,
|
|
68
|
+
label: 'unauthorized',
|
|
69
|
+
value: 'invalid_session'
|
|
70
|
+
}, context).then(function () {
|
|
71
|
+
return null;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
var itemId = params.id,
|
|
76
|
+
_params$value = params.value,
|
|
77
|
+
itemValue = _params$value === void 0 ? 'like' : _params$value;
|
|
78
|
+
var formatItemId = (0, _utils.parseId)(itemId);
|
|
79
|
+
var formatValue = (0, _utils.parseChar)(itemValue, 32);
|
|
80
|
+
var edgeCollection = (0, _utils2.useDb)(database).edgeCollection('hasReaction'); // Remove existing likes
|
|
81
|
+
|
|
82
|
+
var groupDocId = "groups/".concat(formatItemId);
|
|
83
|
+
var userDocId = "users/".concat(sessionId);
|
|
84
|
+
var edgeId = (0, _utils.createHash)("reaction-".concat(formatItemId, "-").concat(sessionId));
|
|
85
|
+
var edge = {
|
|
86
|
+
_key: edgeId,
|
|
87
|
+
added: Date.now(),
|
|
88
|
+
type: 'group',
|
|
89
|
+
value: formatValue
|
|
90
|
+
};
|
|
91
|
+
return edgeCollection.save(edge, userDocId, groupDocId).then(function () {
|
|
92
|
+
return true;
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
exports.addGroupReaction = addGroupReaction;
|
|
97
|
+
|
|
98
|
+
var getGroupReactions = function getGroupReactions(context) {
|
|
99
|
+
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
100
|
+
var action = 'getReactions';
|
|
101
|
+
var database = context.database;
|
|
102
|
+
var groupId = params.id;
|
|
103
|
+
var groupDocId = "groups/".concat((0, _utils.parseId)(groupId)); // Query
|
|
104
|
+
|
|
105
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject(), groupDocId);
|
|
106
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
107
|
+
return cursor.all();
|
|
108
|
+
})["catch"](function (error) {
|
|
109
|
+
return (0, _utils2.logError)({
|
|
110
|
+
action: action,
|
|
111
|
+
category: eventCategory,
|
|
112
|
+
label: 'db_error'
|
|
113
|
+
}, error, context).then(function () {
|
|
114
|
+
return null;
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
exports.getGroupReactions = getGroupReactions;
|
|
120
|
+
|
|
121
|
+
var getReactionsByUser = function getReactionsByUser(context, groupId) {
|
|
122
|
+
var action = 'getReactionsByUser';
|
|
123
|
+
var database = context.database,
|
|
124
|
+
sessionId = context.userId;
|
|
125
|
+
var groupDocId = "groups/".concat((0, _utils.parseId)(groupId));
|
|
126
|
+
var userDocId = "users/".concat(sessionId); // Query
|
|
127
|
+
|
|
128
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject2(), groupDocId, userDocId);
|
|
129
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
130
|
+
return cursor.all();
|
|
131
|
+
})["catch"](function (error) {
|
|
132
|
+
return (0, _utils2.logError)({
|
|
133
|
+
action: action,
|
|
134
|
+
category: eventCategory,
|
|
135
|
+
label: 'db_error'
|
|
136
|
+
}, error, context).then(function () {
|
|
137
|
+
return null;
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
exports.getReactionsByUser = getReactionsByUser;
|
|
143
|
+
|
|
144
|
+
var getUsersByReaction = function getUsersByReaction(context) {
|
|
145
|
+
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
146
|
+
var action = 'getUsersByReaction';
|
|
147
|
+
var database = context.database,
|
|
148
|
+
sessionId = context.userId;
|
|
149
|
+
|
|
150
|
+
if (!sessionId) {
|
|
151
|
+
return (0, _utils2.logException)({
|
|
152
|
+
action: action,
|
|
153
|
+
category: eventCategory,
|
|
154
|
+
label: 'unauthorized',
|
|
155
|
+
value: 'invalid_session'
|
|
156
|
+
}, context).then(function () {
|
|
157
|
+
return null;
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
var _params$filters = params.filters,
|
|
162
|
+
filters = _params$filters === void 0 ? [] : _params$filters,
|
|
163
|
+
groupId = params.id,
|
|
164
|
+
value = params.value;
|
|
165
|
+
var reaction = (0, _utils.parseChar)(value, 32);
|
|
166
|
+
var groupDocId = "groups/".concat((0, _utils.parseId)(groupId));
|
|
167
|
+
var filterStr = filters.map(function (filter) {
|
|
168
|
+
var conditional = filter.conditional,
|
|
169
|
+
name = filter.name,
|
|
170
|
+
queryValue = filter.value;
|
|
171
|
+
var filterCond = conditional;
|
|
172
|
+
|
|
173
|
+
if (conditional !== '>=' && conditional !== '<=' && conditional !== '>' && conditional !== '<') {
|
|
174
|
+
filterCond = '==';
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
switch (name) {
|
|
178
|
+
case 'added':
|
|
179
|
+
return "r.added ".concat(filterCond, " ").concat((0, _utils.parseNum)(queryValue));
|
|
180
|
+
|
|
181
|
+
default:
|
|
182
|
+
return '';
|
|
183
|
+
}
|
|
184
|
+
}).concat(["r.value == \"".concat(reaction, "\""), 'u._id == r._from']).join(' && '); // Query
|
|
185
|
+
|
|
186
|
+
var aqlQry = "FOR g, r IN INBOUND \"".concat(groupDocId, "\" hasReaction\n FOR u IN users\n FILTER ").concat(filterStr, "\n RETURN u");
|
|
187
|
+
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
188
|
+
return cursor.all();
|
|
189
|
+
})["catch"](function (error) {
|
|
190
|
+
return (0, _utils2.logError)({
|
|
191
|
+
action: action,
|
|
192
|
+
category: eventCategory,
|
|
193
|
+
label: 'db_error'
|
|
194
|
+
}, error, context).then(function () {
|
|
195
|
+
return null;
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
exports.getUsersByReaction = getUsersByReaction;
|
|
201
|
+
|
|
202
|
+
var postReaction = function postReaction(context, postId) {
|
|
203
|
+
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'like';
|
|
204
|
+
var database = context.database,
|
|
205
|
+
sessionId = context.userId;
|
|
206
|
+
var formatItemId = (0, _utils.parseId)(postId);
|
|
207
|
+
var db = (0, _utils2.useDb)(database);
|
|
208
|
+
var edgeCollection = db.edgeCollection('reactions');
|
|
209
|
+
var now = Date.now(); // Remove existing reaction to post
|
|
210
|
+
|
|
211
|
+
var postDocId = "posts/".concat(formatItemId);
|
|
212
|
+
var userDocId = "users/".concat(sessionId);
|
|
213
|
+
var aqlQry = (0, _arangojs.aql)(_templateObject3(), postDocId, userDocId);
|
|
214
|
+
return db.query(aqlQry).then(function () {
|
|
215
|
+
var edgeId = (0, _utils.createHash)("reaction-".concat(postId, "-").concat(sessionId));
|
|
216
|
+
var edge = {
|
|
217
|
+
_key: edgeId,
|
|
218
|
+
added: now,
|
|
219
|
+
type: 'posts',
|
|
220
|
+
value: type
|
|
221
|
+
};
|
|
222
|
+
return edgeCollection.save(edge, userDocId, postDocId).then(function () {
|
|
223
|
+
var reactionAqlQry = (0, _arangojs.aql)(_templateObject4());
|
|
224
|
+
return db.query(reactionAqlQry).then(function (cursor) {
|
|
225
|
+
return cursor.next();
|
|
226
|
+
}).then(function () {
|
|
227
|
+
var result = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
228
|
+
reactions: []
|
|
229
|
+
};
|
|
230
|
+
return result;
|
|
231
|
+
})["catch"](function (error) {
|
|
232
|
+
throw error;
|
|
233
|
+
});
|
|
234
|
+
})["catch"](function (error) {
|
|
235
|
+
throw error;
|
|
236
|
+
});
|
|
237
|
+
})["catch"](function (error) {
|
|
238
|
+
throw error;
|
|
239
|
+
});
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
exports.postReaction = postReaction;
|
|
243
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3JlYWN0aW9ucy50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiYWRkR3JvdXBSZWFjdGlvbiIsImNvbnRleHQiLCJwYXJhbXMiLCJhY3Rpb24iLCJkYXRhYmFzZSIsInNlc3Npb25JZCIsInVzZXJJZCIsImNhdGVnb3J5IiwibGFiZWwiLCJ2YWx1ZSIsInRoZW4iLCJpdGVtSWQiLCJpZCIsIml0ZW1WYWx1ZSIsImZvcm1hdEl0ZW1JZCIsImZvcm1hdFZhbHVlIiwiZWRnZUNvbGxlY3Rpb24iLCJncm91cERvY0lkIiwidXNlckRvY0lkIiwiZWRnZUlkIiwiZWRnZSIsIl9rZXkiLCJhZGRlZCIsIkRhdGUiLCJub3ciLCJ0eXBlIiwic2F2ZSIsImdldEdyb3VwUmVhY3Rpb25zIiwiZ3JvdXBJZCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwiY3Vyc29yIiwiYWxsIiwiZXJyb3IiLCJnZXRSZWFjdGlvbnNCeVVzZXIiLCJnZXRVc2Vyc0J5UmVhY3Rpb24iLCJmaWx0ZXJzIiwicmVhY3Rpb24iLCJmaWx0ZXJTdHIiLCJtYXAiLCJmaWx0ZXIiLCJjb25kaXRpb25hbCIsIm5hbWUiLCJxdWVyeVZhbHVlIiwiZmlsdGVyQ29uZCIsImNvbmNhdCIsImpvaW4iLCJwb3N0UmVhY3Rpb24iLCJwb3N0SWQiLCJkYiIsInBvc3REb2NJZCIsInJlYWN0aW9uQXFsUXJ5IiwibmV4dCIsInJlc3VsdCIsInJlYWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUtBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGFBQXFCLEdBQUcsV0FBOUI7O0FBRU8sSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDQyxPQUFELEVBQTBFO0FBQUEsTUFBcERDLE1BQW9ELHVFQUF6QixFQUF5QjtBQUN4RyxNQUFNQyxNQUFjLEdBQUcsVUFBdkI7QUFEd0csTUFFakdDLFFB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LCBwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsLCBEYXRhYmFzZSwgRWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvYXFsLXF1ZXJ5JztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvY3Vyc29yJztcblxuaW1wb3J0IHtBcGlDb250ZXh0LCBRdWVyeUZpbHRlciwgUmVhY3Rpb25UeXBlLCBVc2VyUmVhY3Rpb25RdWVyeSwgVXNlclJlYWN0aW9uVHlwZSwgVXNlclR5cGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbiwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3JlYWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBhZGRHcm91cFJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uVHlwZSA9IHt9KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ3JlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IHtpZDogaXRlbUlkLCB2YWx1ZTogaXRlbVZhbHVlID0gJ2xpa2UnfSA9IHBhcmFtcztcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFZhbHVlOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbVZhbHVlLCAzMik7XG4gIGNvbnN0IGVkZ2VDb2xsZWN0aW9uID0gdXNlRGIoZGF0YWJhc2UpLmVkZ2VDb2xsZWN0aW9uKCdoYXNSZWFjdGlvbicpO1xuXG4gIC8vIFJlbW92ZSBleGlzdGluZyBsaWtlc1xuICBjb25zdCBncm91cERvY0lkOiBzdHJpbmcgPSBgZ3JvdXBzLyR7Zm9ybWF0SXRlbUlkfWA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcmVhY3Rpb24tJHtmb3JtYXRJdGVtSWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCBlZGdlOiBhbnkgPSB7XG4gICAgX2tleTogZWRnZUlkLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpLFxuICAgIHR5cGU6ICdncm91cCcsXG4gICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gIH07XG5cbiAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwgdXNlckRvY0lkLCBncm91cERvY0lkKS50aGVuKCgpID0+IHRydWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdyb3VwUmVhY3Rpb25zID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uVHlwZSA9IHt9KTogUHJvbWlzZTxVc2VyUmVhY3Rpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9ucyc7XG4gIGNvbnN0IHtkYXRhYmFzZX0gPSBjb250ZXh0O1xuICBjb25zdCB7aWQ6IGdyb3VwSWR9OiBVc2VyUmVhY3Rpb25UeXBlID0gcGFyYW1zO1xuICBjb25zdCBncm91cERvY0lkOiBzdHJpbmcgPSBgZ3JvdXBzLyR7cGFyc2VJZChncm91cElkKX1gO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGcsIHIgSU4gSU5CT1VORCAke2dyb3VwRG9jSWR9IGhhc1JlYWN0aW9uXG4gICAgICBDT0xMRUNUIHJlYWN0aW9uTmFtZSA9IHIudmFsdWUgSU5UTyByZWFjdGlvbkl0ZW1zXG4gICAgICBSRVRVUk4ge3ZhbHVlOiByZWFjdGlvbk5hbWUsIGNvdW50OiBMRU5HVEgocmVhY3Rpb25JdGVtc1sqXS5yLnZhbHVlKX1gO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25zQnlVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGdyb3VwSWQ6IHN0cmluZyk6IFByb21pc2U8VXNlclJlYWN0aW9uVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9uc0J5VXNlcic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZ3JvdXBEb2NJZDogc3RyaW5nID0gYGdyb3Vwcy8ke3BhcnNlSWQoZ3JvdXBJZCl9YDtcbiAgY29uc3QgdXNlckRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBnLCByIElOIElOQk9VTkQgJHtncm91cERvY0lkfSBoYXNSZWFjdGlvblxuICAgICAgRklMVEVSIHIuX2Zyb20gPT0gJHt1c2VyRG9jSWR9XG4gICAgICBDT0xMRUNUIHJlYWN0aW9uTmFtZSA9IHIudmFsdWUgSU5UTyByZWFjdGlvbkl0ZW1zXG4gICAgICBSRVRVUk4ge3ZhbHVlOiByZWFjdGlvbk5hbWUsIGNvdW50OiBMRU5HVEgocmVhY3Rpb25JdGVtc1sqXS5yLnZhbHVlKX1gO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlcnNCeVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uUXVlcnkgPSB7fSk6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRVc2Vyc0J5UmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qge2ZpbHRlcnMgPSBbXSwgaWQ6IGdyb3VwSWQsIHZhbHVlfTogVXNlclJlYWN0aW9uUXVlcnkgPSBwYXJhbXM7XG4gIGNvbnN0IHJlYWN0aW9uID0gcGFyc2VDaGFyKHZhbHVlLCAzMik7XG4gIGNvbnN0IGdyb3VwRG9jSWQgPSBgZ3JvdXBzLyR7cGFyc2VJZChncm91cElkKX1gO1xuICBjb25zdCBmaWx0ZXJTdHI6IHN0cmluZyA9IGZpbHRlcnNcbiAgICAubWFwKChmaWx0ZXI6IFF1ZXJ5RmlsdGVyKSA9PiB7XG4gICAgICBjb25zdCB7Y29uZGl0aW9uYWwsIG5hbWUsIHZhbHVlOiBxdWVyeVZhbHVlfTogUXVlcnlGaWx0ZXIgPSBmaWx0ZXI7XG4gICAgICBsZXQgZmlsdGVyQ29uZDogc3RyaW5nID0gY29uZGl0aW9uYWw7XG5cbiAgICAgIGlmKGNvbmRpdGlvbmFsICE9PSAnPj0nICYmIGNvbmRpdGlvbmFsICE9PSAnPD0nICYmIGNvbmRpdGlvbmFsICE9PSAnPicgJiYgY29uZGl0aW9uYWwgIT09ICc8Jykge1xuICAgICAgICBmaWx0ZXJDb25kID0gJz09JztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoKG5hbWUpIHtcbiAgICAgICAgY2FzZSAnYWRkZWQnOlxuICAgICAgICAgIHJldHVybiBgci5hZGRlZCAke2ZpbHRlckNvbmR9ICR7cGFyc2VOdW0ocXVlcnlWYWx1ZSl9YDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfSlcbiAgICAuY29uY2F0KFtcbiAgICAgIGByLnZhbHVlID09IFwiJHtyZWFjdGlvbn1cImAsXG4gICAgICAndS5faWQgPT0gci5fZnJvbSdcbiAgICBdKVxuICAgIC5qb2luKCcgJiYgJyk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGcsIHIgSU4gSU5CT1VORCBcIiR7Z3JvdXBEb2NJZH1cIiBoYXNSZWFjdGlvblxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiAgJHtmaWx0ZXJTdHJ9XG4gICAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cblxuZXhwb3J0IGNvbnN0IHBvc3RSZWFjdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBwb3N0SWQ6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ2xpa2UnKTogUHJvbWlzZTxSZWFjdGlvblR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQocG9zdElkKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2UpO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSBkYi5lZGdlQ29sbGVjdGlvbigncmVhY3Rpb25zJyk7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcblxuICAvLyBSZW1vdmUgZXhpc3RpbmcgcmVhY3Rpb24gdG8gcG9zdFxuICBjb25zdCBwb3N0RG9jSWQ6IHN0cmluZyA9IGBwb3N0cy8ke2Zvcm1hdEl0ZW1JZH1gO1xuICBjb25zdCB1c2VyRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBwLCByIElOIElOQk9VTkQgJHtwb3N0RG9jSWR9IHJlYWN0aW9uXG4gICAgRklMVEVSIHIudHlwZSA9PSBcInBvc3RzXCIgJiYgci5fZnJvbSA9PSAke3VzZXJEb2NJZH1cbiAgICBSRU1PVkUgciBJTiByZWFjdGlvbnNcbiAgICBSRVRVUk4gcmA7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoKSA9PiB7XG4gICAgICBjb25zdCBlZGdlSWQgPSBjcmVhdGVIYXNoKGByZWFjdGlvbi0ke3Bvc3RJZH0tJHtzZXNzaW9uSWR9YCk7XG4gICAgICBjb25zdCBlZGdlOiBhbnkgPSB7XG4gICAgICAgIF9rZXk6IGVkZ2VJZCxcbiAgICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgICAgdHlwZTogJ3Bvc3RzJyxcbiAgICAgICAgdmFsdWU6IHR5cGVcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHVzZXJEb2NJZCwgcG9zdERvY0lkKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVhY3Rpb25BcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCByZWFjdGlvbnMgPSAoXG4gICAgICAgICAgICBGT1IgcG9zdCwgciBJTiBJTkJPVU5EIHAuX2lkIHJlYWN0aW9uc1xuICAgICAgICAgICAgQ09MTEVDVCByZWFjdGlvbk5hbWUgPSByLnZhbHVlIElOVE8gcmVhY3Rpb25JdGVtc1xuICAgICAgICAgICAgUkVUVVJOIHtpZDogcC5faWQsIHR5cGU6IHJlYWN0aW9uTmFtZSwgY291bnQ6IExFTkdUSChyZWFjdGlvbkl0ZW1zWypdLnIudmFsdWUpfVxuICAgICAgICAgIClcbiAgICAgICAgICBSRVRVUk4gcmVhY3Rpb25zYDtcblxuICAgICAgICAgIHJldHVybiBkYi5xdWVyeShyZWFjdGlvbkFxbFFyeSlcbiAgICAgICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdCA9IHtyZWFjdGlvbnM6IFtdfSkgPT4gcmVzdWx0KVxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuIl19
|
package/lib/data/s3.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.s3DeleteList = exports.s3Delete = exports.s3Put = exports.s3Head = exports.s3Get = void 0;
|
|
7
|
+
|
|
8
|
+
var _awsSdk = _interopRequireWildcard(require("aws-sdk"));
|
|
9
|
+
|
|
10
|
+
var _config = require("../config");
|
|
11
|
+
|
|
12
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
16
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
17
|
+
*/
|
|
18
|
+
// AWS S3
|
|
19
|
+
// const eventCategory: string = 's3';
|
|
20
|
+
var s3Get = function s3Get(params) {
|
|
21
|
+
return new Promise(function (resolve, reject) {
|
|
22
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
23
|
+
|
|
24
|
+
var s3 = new _awsSdk.S3();
|
|
25
|
+
|
|
26
|
+
if (!params.Bucket) {
|
|
27
|
+
params.Bucket = _config.Config.get('aws.Bucket');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
s3.getObject(params, function (error, output) {
|
|
31
|
+
if (error) {
|
|
32
|
+
return reject(error);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return resolve(output);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.s3Get = s3Get;
|
|
41
|
+
|
|
42
|
+
var s3Head = function s3Head(params) {
|
|
43
|
+
return new Promise(function (resolve, reject) {
|
|
44
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
45
|
+
|
|
46
|
+
var s3 = new _awsSdk.S3();
|
|
47
|
+
|
|
48
|
+
if (!params.Bucket) {
|
|
49
|
+
params.Bucket = _config.Config.get('aws.Bucket');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
s3.headObject(params, function (error, output) {
|
|
53
|
+
if (error) {
|
|
54
|
+
return reject(error);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return resolve(output);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.s3Head = s3Head;
|
|
63
|
+
|
|
64
|
+
var s3Put = function s3Put(params) {
|
|
65
|
+
return new Promise(function (resolve, reject) {
|
|
66
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
67
|
+
|
|
68
|
+
var s3 = new _awsSdk["default"].S3();
|
|
69
|
+
|
|
70
|
+
if (!params.Bucket) {
|
|
71
|
+
params.Bucket = _config.Config.get('aws.Bucket');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!params.StorageClass) {
|
|
75
|
+
params.StorageClass = 'REDUCED_REDUNDANCY';
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
s3.putObject(params, function (error, output) {
|
|
79
|
+
if (error) {
|
|
80
|
+
return reject(error);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return resolve(output);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
exports.s3Put = s3Put;
|
|
89
|
+
|
|
90
|
+
var s3Delete = function s3Delete(params) {
|
|
91
|
+
return new Promise(function (resolve, reject) {
|
|
92
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
93
|
+
|
|
94
|
+
var s3 = new _awsSdk.S3();
|
|
95
|
+
|
|
96
|
+
if (!params.Bucket) {
|
|
97
|
+
params.Bucket = _config.Config.get('aws.Bucket');
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
s3.deleteObject(params, function (error, output) {
|
|
101
|
+
if (error) {
|
|
102
|
+
return reject(error);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return resolve(output);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
exports.s3Delete = s3Delete;
|
|
111
|
+
|
|
112
|
+
var s3DeleteList = function s3DeleteList(params) {
|
|
113
|
+
return new Promise(function (resolve, reject) {
|
|
114
|
+
_awsSdk["default"].config.update(_config.Config.get('aws'));
|
|
115
|
+
|
|
116
|
+
var s3 = new _awsSdk.S3();
|
|
117
|
+
|
|
118
|
+
if (!params.Bucket) {
|
|
119
|
+
params.Bucket = _config.Config.get('aws.Bucket');
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
s3.deleteObjects(params, function (error, output) {
|
|
123
|
+
if (error) {
|
|
124
|
+
return reject(error);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return resolve(output);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
exports.s3DeleteList = s3DeleteList;
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3MzLnRzIl0sIm5hbWVzIjpbInMzR2V0IiwicGFyYW1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhd3MiLCJjb25maWciLCJ1cGRhdGUiLCJDb25maWciLCJnZXQiLCJzMyIsIlMzIiwiQnVja2V0IiwiZ2V0T2JqZWN0IiwiZXJyb3IiLCJvdXRwdXQiLCJzM0hlYWQiLCJoZWFkT2JqZWN0IiwiczNQdXQiLCJTdG9yYWdlQ2xhc3MiLCJwdXRPYmplY3QiLCJzM0RlbGV0ZSIsImRlbGV0ZU9iamVjdCIsInMzRGVsZXRlTGlzdCIsImRlbGV0ZU9iamVjdHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQTs7QUFjQTs7OztBQWxCQTs7OztBQW9CQTtBQUNBO0FBRU8sSUFBTUEsS0FBSyxHQUFHLFNBQVJBLEtBQVEsQ0FBQ0MsTUFBRDtBQUFBLFNBQ25CLElBQUlDLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBcUI7QUFDL0JDLHVCQUFJQyxNQUFKLENBQVdDLE1BQVgsQ0FBa0JDLGVBQU9DLEdBQVAsQ0FBVyxLQUFYLENBQWxCOztBQUNBLFFBQU1DLEVBQU0sR0FBRyxJQUFJQyxVQUFKLEVBQWY7O0FBRUEsUUFBRyxDQUFDVixNQUFNLENBQUNXLE1BQVgsRUFBbUI7QUFDakJYLE1BQUFBLE1BQU0sQ0FBQ1csTUFBUCxHQUFnQkosZUFBT0MsR0FBUCxDQUFXLFlBQVgsQ0FBaEI7QUFDRDs7QUFFREMsSUFBQUEsRUFBRSxDQUFDRyxTQUFILENBQWFaLE1BQWIsRUFBcUIsVUFBQ2EsS0FBRCxFQUFlQyxNQUFmLEVBQTJDO0FBQzlELFVBQUdELEtBQUgsRUFBVTtBQUNSLGVBQU9WLE1BQU0sQ0FBQ1UsS0FBRCxDQUFiO0FBQ0Q7O0FBRUQsYUFBT1gsT0FBTyxDQUFDWSxNQUFELENBQWQ7QUFDRCxLQU5EO0FBT0QsR0FmRCxDQURtQjtBQUFBLENBQWQ7Ozs7QUFrQkEsSUFBTUMsTUFBTSxHQUFHLFNBQVRBLE1B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SUFBSUMsVUFBSixFQUFmOztBQUVBLFFBQUcsQ0FBQ1YsTUFBTSxDQUFDVyxNQUFYLEVBQW1CO0FBQ2pCWCxNQUFBQSxNQUFNLENBQUNXLE1BQVAsR0FBZ0JKLGVBQU9DLEdBQVAsQ0FBVyxZQUFYLENBQWhCO0FBQ0Q7O0FBRURDLElBQUFBLEVBQUUsQ0FBQ2MsYUFBSCxDQUFpQnZCLE1BQWpCLEVBQXlCLFVBQUNhLEtBQUQsRUFBZUMsTUFBZixFQUErQztBQUN0RSxVQUFHRCxLQUFILEVBQVU7QUFDUixlQUFPVixNQUFNLENBQUNVLEtBQUQsQ0FBYjtBQUNEOztBQUNELGFBQU9YLE9BQU8sQ0FBQ1ksTUFBRCxDQUFkO0FBQ0QsS0FMRDtBQU1ELEdBZEQsQ0FEMEI7QUFBQSxDQUFyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgYXdzLCB7UzN9IGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0IHtcbiAgRGVsZXRlT2JqZWN0T3V0cHV0LFxuICBEZWxldGVPYmplY3RSZXF1ZXN0LFxuICBEZWxldGVPYmplY3RzT3V0cHV0LFxuICBEZWxldGVPYmplY3RzUmVxdWVzdCxcbiAgR2V0T2JqZWN0T3V0cHV0LFxuICBHZXRPYmplY3RSZXF1ZXN0LFxuICBIZWFkT2JqZWN0T3V0cHV0LFxuICBIZWFkT2JqZWN0UmVxdWVzdCxcbiAgUHV0T2JqZWN0T3V0cHV0LFxuICBQdXRPYmplY3RSZXF1ZXN0XG59IGZyb20gJ2F3cy1zZGsvY2xpZW50cy9zMyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuXG4vLyBBV1MgUzNcbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdzMyc7XG5cbmV4cG9ydCBjb25zdCBzM0dldCA9IChwYXJhbXM6IEdldE9iamVjdFJlcXVlc3QpOiBQcm9taXNlPEdldE9iamVjdE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgICBjb25zdCBzMzogUzMgPSBuZXcgUzMoKTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLkJ1Y2tldCcpO1xuICAgIH1cblxuICAgIHMzLmdldE9iamVjdChwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogR2V0T2JqZWN0T3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBzM0hlYWQgPSAocGFyYW1zOiBIZWFkT2JqZWN0UmVxdWVzdCk6IFByb21pc2U8SGVhZE9iamVjdE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGF3cy5jb25maWcudXBkYXRlKENvbmZpZy5nZXQoJ2F3cycpKTtcbiAgICBjb25zdCBzMzogUzMgPSBuZXcgUzMoKTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLkJ1Y2tldCcpO1xuICAgIH1cblxuICAgIHMzLmhlYWRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IEhlYWRPYmplY3RPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cblxuZXhwb3J0IGNvbnN0IHMzUHV0ID0gKHBhcmFtczogUHV0T2JqZWN0UmVxdWVzdCk6IFByb21pc2U8UHV0T2JqZWN0T3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzID0gbmV3IGF3cy5TMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgaWYoIXBhcmFtcy5TdG9yYWdlQ2xhc3MpIHtcbiAgICAgIHBhcmFtcy5TdG9yYWdlQ2xhc3MgPSAnUkVEVUNFRF9SRURVTkRBTkNZJztcbiAgICB9XG5cbiAgICBzMy5wdXRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IFB1dE9iamVjdE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlID0gKHBhcmFtczogRGVsZXRlT2JqZWN0UmVxdWVzdCk6IFByb21pc2U8RGVsZXRlT2JqZWN0T3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZGVsZXRlT2JqZWN0KHBhcmFtcywgKGVycm9yLCBvdXRwdXQ6IERlbGV0ZU9iamVjdE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlTGlzdCA9IChwYXJhbXM6IERlbGV0ZU9iamVjdHNSZXF1ZXN0KTogUHJvbWlzZTxEZWxldGVPYmplY3RzT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXdzLmNvbmZpZy51cGRhdGUoQ29uZmlnLmdldCgnYXdzJykpO1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMygpO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuQnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZGVsZXRlT2JqZWN0cyhwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogRGVsZXRlT2JqZWN0c091dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcbiJdfQ==
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSearchList = void 0;
|
|
7
|
+
|
|
8
|
+
var _arangojs = require("arangojs");
|
|
9
|
+
|
|
10
|
+
var _flatten = _interopRequireDefault(require("lodash/flatten"));
|
|
11
|
+
|
|
12
|
+
var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
|
|
13
|
+
|
|
14
|
+
var _utils = require("../utils");
|
|
15
|
+
|
|
16
|
+
var _users = require("./users");
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
|
21
|
+
|
|
22
|
+
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; }
|
|
23
|
+
|
|
24
|
+
function _templateObject() {
|
|
25
|
+
var data = _taggedTemplateLiteral(["FOR u IN FULLTEXT(", ", ", ", ", ", 50) RETURN u"]);
|
|
26
|
+
|
|
27
|
+
_templateObject = function _templateObject() {
|
|
28
|
+
return data;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
35
|
+
|
|
36
|
+
var eventCategory = 'search';
|
|
37
|
+
|
|
38
|
+
var getSearchList = function getSearchList(context, query, from, to) {
|
|
39
|
+
var action = 'getList';
|
|
40
|
+
var database = context.database;
|
|
41
|
+
var isString = true;
|
|
42
|
+
|
|
43
|
+
if (isString) {
|
|
44
|
+
var fields = [{
|
|
45
|
+
collection: 'users',
|
|
46
|
+
field: 'first'
|
|
47
|
+
}, {
|
|
48
|
+
collection: 'users',
|
|
49
|
+
field: 'last'
|
|
50
|
+
}, {
|
|
51
|
+
collection: 'users',
|
|
52
|
+
field: 'email'
|
|
53
|
+
}, {
|
|
54
|
+
collection: 'users',
|
|
55
|
+
field: 'username'
|
|
56
|
+
}, {
|
|
57
|
+
collection: 'users',
|
|
58
|
+
field: 'name'
|
|
59
|
+
}];
|
|
60
|
+
return Promise.all(fields.map(function (obj) {
|
|
61
|
+
var qry = "prefix:".concat(query);
|
|
62
|
+
var userQry = (0, _arangojs.aql)(_templateObject(), obj.collection, obj.field, qry);
|
|
63
|
+
return (0, _utils.useDb)(database).query(userQry).then(function (cursor) {
|
|
64
|
+
return cursor.all();
|
|
65
|
+
});
|
|
66
|
+
})).then(function (results) {
|
|
67
|
+
var list = (0, _uniqBy["default"])((0, _flatten["default"])(results), '_key');
|
|
68
|
+
return list.map(function (item) {
|
|
69
|
+
var itemId = item._id,
|
|
70
|
+
itemName = item.name;
|
|
71
|
+
var collectionIdList = itemId.split('/');
|
|
72
|
+
var collection = collectionIdList[0];
|
|
73
|
+
var name = collection === 'users' ? (0, _users.getDisplayName)(item) : itemName;
|
|
74
|
+
return _objectSpread({}, item, {
|
|
75
|
+
name: name
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
var limit = (0, _utils.getLimit)(from, to);
|
|
82
|
+
var aqlQry = "FOR u IN users\n FILTER u.phone == \"".concat(query, "\"\n ").concat(limit.aql, "\n RETURN u");
|
|
83
|
+
return (0, _utils.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
84
|
+
return cursor.all();
|
|
85
|
+
}).then(function () {
|
|
86
|
+
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
87
|
+
return list.map(function () {
|
|
88
|
+
var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
89
|
+
var itemId = item._id,
|
|
90
|
+
itemName = item.name;
|
|
91
|
+
var collectionIdList = itemId.split('/');
|
|
92
|
+
var collection = collectionIdList[0];
|
|
93
|
+
var name = collection === 'users' ? (0, _users.getDisplayName)(item) : itemName;
|
|
94
|
+
return _objectSpread({}, item, {
|
|
95
|
+
name: name
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
})["catch"](function (error) {
|
|
99
|
+
return (0, _utils.logException)({
|
|
100
|
+
action: action,
|
|
101
|
+
category: eventCategory,
|
|
102
|
+
label: 'db_error',
|
|
103
|
+
value: error.message
|
|
104
|
+
}, context).then(function () {
|
|
105
|
+
return null;
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
exports.getSearchList = getSearchList;
|
|
111
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3NlYXJjaC50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiZ2V0U2VhcmNoTGlzdCIsImNvbnRleHQiLCJxdWVyeSIsImZyb20iLCJ0byIsImFjdGlvbiIsImRhdGFiYXNlIiwiaXNTdHJpbmciLCJmaWVsZHMiLCJjb2xsZWN0aW9uIiwiZmllbGQiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwib2JqIiwicXJ5IiwidXNlclFyeSIsImFxbCIsInRoZW4iLCJjdXJzb3IiLCJyZXN1bHRzIiwibGlzdCIsIml0ZW0iLCJpdGVtSWQiLCJfaWQiLCJpdGVtTmFtZSIsIm5hbWUiLCJjb2xsZWN0aW9uSWRMaXN0Iiwic3BsaXQiLCJsaW1pdCIsImFxbFFyeSIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCIsInZhbHVlIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBOztBQUdBOztBQUNBOztBQUtBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGFBQXFCLEdBQUcsUUFBOUI7O0FBRU8sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxPQUFELEVBQXNCQyxLQUF0QixFQUFxQ0MsSUFBckMsRUFBbURDLEVBQW5ELEVBQXVGO0FBQ2xILE1BQU1DLE1BQWMsR0FBRyxTQUF2QjtBQURrSCxNQUUzR0MsUUFGMkcsR0FFL0ZMLE9BRitGLENBRTNHSyxRQUYyRztBQUdsSCxNQUFNQyxRQUFpQixHQUFHLElBQTFCOztBQUVBLE1BQUdBLFFBQUgsRUFBYTtBQUNYLFFBQU1DLE1BQWEsR0FBRyxDQUNwQjtBQUFDQyxNQUFBQSxVQUFVLEVBQUUsT0FBYjtBQUFzQkMsTUFBQUEsS0FBSyxFQUFFO0FBQTdCLEtBRG9CLEVBRXBCO0FBQUNELE1BQUFBLFVBQVUsRUFBRSxPQUFiO0FBQXNCQyxNQUFBQSxLQUFLLEVBQUU7QUFBN0IsS0FGb0IsRUFHcEI7QUFBQ0QsTUFBQUEsVUFBVSxFQUFFLE9BQWI7QUFB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QSxLQUFLLEVBQUUsVUFINkI7QUFJcENDLE1BQUFBLEtBQUssRUFBRUgsS0FBSyxDQUFDSTtBQUp1QixLQUFiLEVBS3RCbEMsT0FMc0IsRUFLYmlCLElBTGEsQ0FLUjtBQUFBLGFBQU0sSUFBTjtBQUFBLEtBTFEsQ0FBbEI7QUFBQSxHQVZGLENBQVA7QUFnQkQsQ0F2RE0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvYXFsLXF1ZXJ5JztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvY3Vyc29yJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB1bmlxQnkgZnJvbSAnbG9kYXNoL3VuaXFCeSc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGInO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7VXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzJztcbmltcG9ydCB7Z2V0TGltaXQsIGxvZ0V4Y2VwdGlvbiwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7Z2V0RGlzcGxheU5hbWV9IGZyb20gJy4vdXNlcnMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc2VhcmNoJztcblxuZXhwb3J0IGNvbnN0IGdldFNlYXJjaExpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldExpc3QnO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgaXNTdHJpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGlmKGlzU3RyaW5nKSB7XG4gICAgY29uc3QgZmllbGRzOiBhbnlbXSA9IFtcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ2ZpcnN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdsYXN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdlbWFpbCd9LFxuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAndXNlcm5hbWUnfSxcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ25hbWUnfVxuICAgIF07XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZmllbGRzLm1hcCgob2JqKSA9PiB7XG4gICAgICBjb25zdCBxcnk6IHN0cmluZyA9IGBwcmVmaXg6JHtxdWVyeX1gO1xuICAgICAgY29uc3QgdXNlclFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUgSU4gRlVMTFRFWFQoJHtvYmouY29sbGVjdGlvbn0sICR7b2JqLmZpZWxkfSwgJHtxcnl9LCA1MCkgUkVUVVJOIHVgO1xuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeSh1c2VyUXJ5KS50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpO1xuICAgIH0pKVxuICAgICAgLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHVuaXFCeShmbGF0dGVuKHJlc3VsdHMpLCAnX2tleScpO1xuXG4gICAgICAgIHJldHVybiBsaXN0Lm1hcCgoaXRlbTogVXNlclR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCB7X2lkOiBpdGVtSWQsIG5hbWU6IGl0ZW1OYW1lfSA9IGl0ZW07XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbklkTGlzdDogc3RyaW5nW10gPSBpdGVtSWQuc3BsaXQoJy8nKTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBzdHJpbmcgPSBjb2xsZWN0aW9uSWRMaXN0WzBdO1xuICAgICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGNvbGxlY3Rpb24gPT09ICd1c2VycycgPyBnZXREaXNwbGF5TmFtZShpdGVtKSA6IGl0ZW1OYW1lO1xuXG4gICAgICAgICAgcmV0dXJuIHsuLi5pdGVtLCBuYW1lfTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EQkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdSBJTiB1c2Vyc1xuICAgICAgICBGSUxURVIgdS5waG9uZSA9PSBcIiR7cXVlcnl9XCJcbiAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgIFJFVFVSTiB1YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0OiBVc2VyVHlwZVtdID0gW10pID0+IGxpc3QubWFwKChpdGVtID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHtfaWQ6IGl0ZW1JZCwgbmFtZTogaXRlbU5hbWV9ID0gaXRlbTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb25JZExpc3Q6IHN0cmluZ1tdID0gaXRlbUlkLnNwbGl0KCcvJyk7XG4gICAgICBjb25zdCBjb2xsZWN0aW9uOiBzdHJpbmcgPSBjb2xsZWN0aW9uSWRMaXN0WzBdO1xuICAgICAgY29uc3QgbmFtZTogc3RyaW5nID0gY29sbGVjdGlvbiA9PT0gJ3VzZXJzJyA/IGdldERpc3BsYXlOYW1lKGl0ZW0pIDogaXRlbU5hbWU7XG5cbiAgICAgIHJldHVybiB7Li4uaXRlbSwgbmFtZX07XG4gICAgfSkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InLFxuICAgICAgdmFsdWU6IGVycm9yLm1lc3NhZ2VcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXX0=
|
package/lib/data/sms.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.sendSmsTemplate = exports.sendSms = void 0;
|
|
7
|
+
|
|
8
|
+
var _utils = require("@nlabs/utils");
|
|
9
|
+
|
|
10
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
11
|
+
|
|
12
|
+
var _twilio = _interopRequireDefault(require("twilio"));
|
|
13
|
+
|
|
14
|
+
var _config = require("../config");
|
|
15
|
+
|
|
16
|
+
var _email = require("./email");
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
22
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
23
|
+
*/
|
|
24
|
+
// const eventCategory: string = 'sms';
|
|
25
|
+
// Twilio
|
|
26
|
+
var sendSms = function sendSms(params) {
|
|
27
|
+
var _params$app = params.app,
|
|
28
|
+
app = _params$app === void 0 ? {} : _params$app,
|
|
29
|
+
content = params.content,
|
|
30
|
+
_params$user = params.user,
|
|
31
|
+
user = _params$user === void 0 ? {} : _params$user;
|
|
32
|
+
var country = user.country || 'US';
|
|
33
|
+
var phone = (0, _utils.parsePhone)(user.phone, country);
|
|
34
|
+
var templateContent = (0, _email.appTemplate)(app, content);
|
|
35
|
+
var twilio = (0, _twilio["default"])(_config.Config.get('twilio.sid'), _config.Config.get('twilio.token'));
|
|
36
|
+
var cfg = {
|
|
37
|
+
body: templateContent,
|
|
38
|
+
from: _config.Config.get('twilio.number'),
|
|
39
|
+
to: phone
|
|
40
|
+
};
|
|
41
|
+
return new Promise(function (resolve, reject) {
|
|
42
|
+
twilio.sendMessage(cfg, function (error, data) {
|
|
43
|
+
if (error) {
|
|
44
|
+
reject(new Error(error.error_message));
|
|
45
|
+
} else {
|
|
46
|
+
resolve(data);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.sendSms = sendSms;
|
|
53
|
+
|
|
54
|
+
var sendSmsTemplate = function sendSmsTemplate(templateName, smsParams) {
|
|
55
|
+
var app = smsParams.app,
|
|
56
|
+
user = smsParams.user,
|
|
57
|
+
vars = smsParams.vars;
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
var data = _fs["default"].readFileSync("./templates/sms/".concat(templateName, ".txt"), 'utf8');
|
|
61
|
+
|
|
62
|
+
var text = (0, _email.appTemplate)(app, data, vars);
|
|
63
|
+
var params = {
|
|
64
|
+
app: app,
|
|
65
|
+
text: text,
|
|
66
|
+
user: user
|
|
67
|
+
};
|
|
68
|
+
return sendSms(params).then(function (res) {
|
|
69
|
+
return res.status === 'queued';
|
|
70
|
+
})["catch"](function (error) {
|
|
71
|
+
throw error;
|
|
72
|
+
});
|
|
73
|
+
} catch (error) {
|
|
74
|
+
return Promise.reject(error);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
exports.sendSmsTemplate = sendSmsTemplate;
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3Ntcy50cyJdLCJuYW1lcyI6WyJzZW5kU21zIiwicGFyYW1zIiwiYXBwIiwiY29udGVudCIsInVzZXIiLCJjb3VudHJ5IiwicGhvbmUiLCJ0ZW1wbGF0ZUNvbnRlbnQiLCJ0d2lsaW8iLCJDb25maWciLCJnZXQiLCJjZmciLCJib2R5IiwiZnJvbSIsInRvIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZW5kTWVzc2FnZSIsImVycm9yIiwiZGF0YSIsIkVycm9yIiwiZXJyb3JfbWVzc2FnZSIsInNlbmRTbXNUZW1wbGF0ZSIsInRlbXBsYXRlTmFtZSIsInNtc1BhcmFtcyIsInZhcnMiLCJmcyIsInJlYWRGaWxlU3luYyIsInRleHQiLCJ0aGVuIiwicmVzIiwic3RhdHVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBRUE7Ozs7QUFWQTs7OztBQVlBO0FBRUE7QUFDTyxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxNQUFELEVBQWdDO0FBQUEsb0JBS2pEQSxNQUxpRCxDQUVuREMsR0FGbUQ7QUFBQSxNQUVuREEsR0FGbUQsNEJBRTdDLEVBRjZDO0FBQUEsTUFHbkRDLE9BSG1ELEdBS2pERixNQUxpRCxDQUduREUsT0FIbUQ7QUFBQSxxQkFLakRGLE1BTGlELENBSW5ERyxJQUptRDtBQUFBLE1BSW5EQSxJQUptRCw2QkFJNUMsRUFKNEM7QUFPckQsTUFBTUMsT0FBTyxHQUFHRCxJQUFJLENBQUNDLE9BQUwsSUFBZ0IsSUFBaEM7QUFDQSxNQUFNQyxLQUFLLEdBQUcsdUJBQVdGLElBQUksQ0FBQ0UsS0FBaEIsRUFBdUJELE9BQXZCLENBQWQ7QUFDQSxNQUFNRSxlQUF1QixHQUFHLHdCQUFZTCxHQUFaLEVBQWlCQyxPQUFqQixDQUFoQztBQUVBLE1BQU1LLE1BQVcsR0FBRyx3QkFBVUMsZUFBT0MsR0FBUCxDQUFXLFlBQVgsQ0FBVixFQUFvQ0QsZUFBT0MsR0FBUCxDQUFXLGNBQVgsQ0FBcEMsQ0FBcEI7QUFDQSxNQUFNQyxHQUFzQixHQUFHO0FBQzdCQyxJQUFBQSxJQUFJLEVBQUVMLGVBRHVCO0FBRTdCTSxJQUFBQSxJQUFJLEVBQUVKLGVBQU9DLEdBQVAsQ0FBVyxlQUFYLENBRnVCO0FBRzdCSSxJQUFBQSxFQUFFLEVBQUVSO0FBSHlCLEdBQS9CO0FBTUEsU0FBTyxJQUFJUyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQ3RDVCxJQUFBQSxNQUFNLENBQUNVLFdBQVAsQ0FBbUJQLEdBQW5CLEVBQXdCLFVBQUNRLEtBQUQsRUFBUUMsSUFBUixFQUFpQjtBQUN2QyxVQUFHRCxLQUFILEVBQVU7QUFDUkYsUUFBQUEsTUFBTSxDQUFDLElBQUlJLEtBQUosQ0FBVUYsS0FBSyxDQUFDRyxhQUFoQixDQUFELENBQU47QUFDRCxPQUZELE1BRU87QUFDTE4sUUFBQUEsT0FBTyxDQUFDSSxJQUFELENBQVA7QUFDRDtBQUNGLEtBTkQ7QUFPRCxHQVJNLENBQVA7QUFTRCxDQTNCTTs7OztBQTZCQSxJQUFNRyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLFlBQUQsRUFBdUJDLFNBQXZCLEVBQXNFO0FBQUEsTUFDNUZ2QixHQUQ0RixHQUN6RXVCLFNBRHlFLENBQzVGdkIsR0FENEY7QUFBQSxNQUN2RkUsSUFEdUYsR0FDekVxQixTQUR5RSxDQUN2RnJCLElBRHVGO0FBQUEsTUFDakZzQixJQURpRixHQUN6RUQsU0FEeUUsQ0FDakZDLElBRGlGOztBQUVuRyxNQUFJO0FBQ0YsUUFBTU4sSUFBSSxHQUFHTyxlQUFHQyxZQUFILDJCQUFtQ0osWUFBbkMsV0FBdUQsTUFBdkQsQ0FBYjs7QUFDQSxRQUFNSyxJQUFJLEdBQUcsd0JBQVkzQixHQUFaLEVBQWlCa0IsSUFBakIsRUFBdUJNLElBQXZCLENBQWI7QUFDQSxRQUFNekIsTUFBTSxHQUFHO0FBQUNDLE1BQUFBLEdBQUcsRUFBSEEsR0FBRDtBQUFNMkIsTUFBQUEsSUFBSSxFQUFKQSxJQUFOO0FBQVl6QixNQUFBQSxJQUFJLEVBQUpBO0FBQVosS0FBZjtBQUVBLFdBQU9KLE9BQU8sQ0FBQ0MsTUFBRCxDQUFQLENBQ0o2QixJQURJLENBQ0MsVUFBQ0MsR0FBRDtBQUFBLGFBQVNBLEdBQUcsQ0FBQ0MsTUFBSixLQUFlLFFBQXhCO0FBQUEsS0FERCxXQUVFLFVBQUNiLEtBQUQsRUFBa0I7QUFDdkIsWUFBTUEsS0FBTjtBQUNELEtBSkksQ0FBUDtBQUtELEdBVkQsQ0FVRSxPQUFNQSxLQUFOLEVBQWE7QUFDYixXQUFPSixPQUFPLENBQUNFLE1BQVIsQ0FBZUUsS0FBZixDQUFQO0FBQ0Q7QUFDRixDQWZNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cGFyc2VQaG9uZX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgdHdpbGlvU2RrIGZyb20gJ3R3aWxpbyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtTTVNQYXJhbXNUeXBlLCBUd2lsaW9PcHRpb25zVHlwZX0gZnJvbSAnLi4vdHlwZXMvbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge2FwcFRlbXBsYXRlfSBmcm9tICcuL2VtYWlsJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3Ntcyc7XG5cbi8vIFR3aWxpb1xuZXhwb3J0IGNvbnN0IHNlbmRTbXMgPSAocGFyYW1zOiBTTVNQYXJhbXNUeXBlKTogYW55ID0+IHtcbiAgY29uc3Qge1xuICAgIGFwcCA9IHt9LFxuICAgIGNvbnRlbnQsXG4gICAgdXNlciA9IHt9XG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgY291bnRyeSA9IHVzZXIuY291bnRyeSB8fCAnVVMnO1xuICBjb25zdCBwaG9uZSA9IHBhcnNlUGhvbmUodXNlci5waG9uZSwgY291bnRyeSk7XG4gIGNvbnN0IHRlbXBsYXRlQ29udGVudDogc3RyaW5nID0gYXBwVGVtcGxhdGUoYXBwLCBjb250ZW50KTtcblxuICBjb25zdCB0d2lsaW86IGFueSA9IHR3aWxpb1NkayhDb25maWcuZ2V0KCd0d2lsaW8uc2lkJyksIENvbmZpZy5nZXQoJ3R3aWxpby50b2tlbicpKTtcbiAgY29uc3QgY2ZnOiBUd2lsaW9PcHRpb25zVHlwZSA9IHtcbiAgICBib2R5OiB0ZW1wbGF0ZUNvbnRlbnQsXG4gICAgZnJvbTogQ29uZmlnLmdldCgndHdpbGlvLm51bWJlcicpLFxuICAgIHRvOiBwaG9uZVxuICB9O1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHdpbGlvLnNlbmRNZXNzYWdlKGNmZywgKGVycm9yLCBkYXRhKSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKGVycm9yLmVycm9yX21lc3NhZ2UpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3Qgc2VuZFNtc1RlbXBsYXRlID0gKHRlbXBsYXRlTmFtZTogc3RyaW5nLCBzbXNQYXJhbXM6IFNNU1BhcmFtc1R5cGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3Qge2FwcCwgdXNlciwgdmFyc30gPSBzbXNQYXJhbXM7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhgLi90ZW1wbGF0ZXMvc21zLyR7dGVtcGxhdGVOYW1lfS50eHRgLCAndXRmOCcpO1xuICAgIGNvbnN0IHRleHQgPSBhcHBUZW1wbGF0ZShhcHAsIGRhdGEsIHZhcnMpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHthcHAsIHRleHQsIHVzZXJ9O1xuXG4gICAgcmV0dXJuIHNlbmRTbXMocGFyYW1zKVxuICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLnN0YXR1cyA9PT0gJ3F1ZXVlZCcpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgfVxufTtcbiJdfQ==
|