@nlabs/reaktor 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/src/config.ts +8 -2
- package/src/data/posts.ts +79 -60
- package/src/types/posts.ts +1 -0
- package/lib/config.d.ts +0 -21
- package/lib/config.js +0 -127
- package/lib/data/conversations.d.ts +0 -6
- package/lib/data/conversations.js +0 -197
- package/lib/data/dynamodb.d.ts +0 -8
- package/lib/data/dynamodb.js +0 -139
- package/lib/data/email.d.ts +0 -7
- package/lib/data/email.js +0 -163
- package/lib/data/files.d.ts +0 -16
- package/lib/data/files.js +0 -406
- package/lib/data/groups.d.ts +0 -13
- package/lib/data/groups.js +0 -354
- package/lib/data/images.d.ts +0 -12
- package/lib/data/images.js +0 -667
- package/lib/data/index.d.ts +0 -19
- package/lib/data/index.js +0 -24
- package/lib/data/ios.d.ts +0 -6
- package/lib/data/ios.js +0 -302
- package/lib/data/locations.d.ts +0 -3
- package/lib/data/locations.js +0 -132
- package/lib/data/messages.d.ts +0 -9
- package/lib/data/messages.js +0 -248
- package/lib/data/notifications.d.ts +0 -5
- package/lib/data/notifications.js +0 -42
- package/lib/data/payments.d.ts +0 -11
- package/lib/data/payments.js +0 -748
- package/lib/data/posts.d.ts +0 -16
- package/lib/data/posts.js +0 -540
- package/lib/data/reactions.d.ts +0 -6
- package/lib/data/reactions.js +0 -218
- package/lib/data/s3.d.ts +0 -6
- package/lib/data/s3.js +0 -103
- package/lib/data/search.d.ts +0 -3
- package/lib/data/search.js +0 -98
- package/lib/data/sms.d.ts +0 -3
- package/lib/data/sms.js +0 -59
- package/lib/data/subscription.d.ts +0 -7
- package/lib/data/subscription.js +0 -284
- package/lib/data/tags.d.ts +0 -14
- package/lib/data/tags.js +0 -304
- package/lib/data/users.d.ts +0 -12
- package/lib/data/users.js +0 -310
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -8
- package/lib/types/apps.d.ts +0 -43
- package/lib/types/apps.js +0 -2
- package/lib/types/arangodb.d.ts +0 -17
- package/lib/types/arangodb.js +0 -2
- package/lib/types/auth.d.ts +0 -10
- package/lib/types/auth.js +0 -2
- package/lib/types/conversations.d.ts +0 -6
- package/lib/types/conversations.js +0 -2
- package/lib/types/email.d.ts +0 -12
- package/lib/types/email.js +0 -2
- package/lib/types/files.d.ts +0 -26
- package/lib/types/files.js +0 -2
- package/lib/types/google.d.ts +0 -27
- package/lib/types/google.js +0 -2
- package/lib/types/groups.d.ts +0 -21
- package/lib/types/groups.js +0 -2
- package/lib/types/images.d.ts +0 -24
- package/lib/types/images.js +0 -2
- package/lib/types/index.d.ts +0 -17
- package/lib/types/index.js +0 -22
- package/lib/types/locations.d.ts +0 -20
- package/lib/types/locations.js +0 -2
- package/lib/types/messages.d.ts +0 -12
- package/lib/types/messages.js +0 -2
- package/lib/types/notifications.d.ts +0 -19
- package/lib/types/notifications.js +0 -2
- package/lib/types/payments.d.ts +0 -114
- package/lib/types/payments.js +0 -2
- package/lib/types/posts.d.ts +0 -27
- package/lib/types/posts.js +0 -2
- package/lib/types/reactions.d.ts +0 -4
- package/lib/types/reactions.js +0 -2
- package/lib/types/tags.d.ts +0 -9
- package/lib/types/tags.js +0 -2
- package/lib/types/users.d.ts +0 -78
- package/lib/types/users.js +0 -2
- package/lib/utils/analytics.d.ts +0 -3
- package/lib/utils/analytics.js +0 -47
- package/lib/utils/arangodb.d.ts +0 -9
- package/lib/utils/arangodb.js +0 -98
- package/lib/utils/auth.d.ts +0 -7
- package/lib/utils/auth.js +0 -80
- package/lib/utils/graphql.d.ts +0 -1
- package/lib/utils/graphql.js +0 -7
- package/lib/utils/index.d.ts +0 -6
- package/lib/utils/index.js +0 -11
- package/lib/utils/objects.d.ts +0 -3
- package/lib/utils/objects.js +0 -34
- package/lib/utils/redis.d.ts +0 -1
- package/lib/utils/redis.js +0 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/reaktor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Reaktor",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./lib/index.d.js",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@nlabs/arkhamjs": "^3.11.11",
|
|
37
37
|
"@nlabs/rip-hunter": "^2.0.1",
|
|
38
|
-
"@nlabs/utils": "^1.2.
|
|
38
|
+
"@nlabs/utils": "^1.2.2",
|
|
39
39
|
"apn": "^2.2.0",
|
|
40
40
|
"arangojs": "^6.0.0",
|
|
41
|
-
"aws-sdk": "^2.
|
|
41
|
+
"aws-sdk": "^2.421.0",
|
|
42
42
|
"gm": "^1.23.1",
|
|
43
43
|
"google-libphonenumber": "^3.0.10",
|
|
44
|
-
"googleapis": "^
|
|
44
|
+
"googleapis": "^38.0.0",
|
|
45
45
|
"graphql": "^14.0.2",
|
|
46
46
|
"graphql-errors": "^2.1.0",
|
|
47
47
|
"graphql-fields": "^2.0.3",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"@types/history": "^4.6.2",
|
|
65
65
|
"@types/jest": "^24.0.11",
|
|
66
66
|
"@types/luxon": "^1.11.0",
|
|
67
|
-
"@types/node": "^11.11.
|
|
67
|
+
"@types/node": "^11.11.3",
|
|
68
68
|
"@types/twilio": "^0.0.10",
|
|
69
69
|
"eslint": "^5.15.1",
|
|
70
70
|
"eslint-config-styleguidejs": "^1.0.8",
|
package/src/config.ts
CHANGED
|
@@ -26,7 +26,13 @@ export interface EnvConfig {
|
|
|
26
26
|
|
|
27
27
|
const appPackage: any = require('../package.json');
|
|
28
28
|
|
|
29
|
-
const {
|
|
29
|
+
const {
|
|
30
|
+
arangodbDatabase = 'reaktor',
|
|
31
|
+
arangodbPassword,
|
|
32
|
+
arangodbPort = '8529',
|
|
33
|
+
arangodbUrl = 'db.reaktor.io',
|
|
34
|
+
arangodbUsername = 'reaktor'
|
|
35
|
+
} = process.env;
|
|
30
36
|
|
|
31
37
|
export class Config {
|
|
32
38
|
static values: EnvConfig = {
|
|
@@ -37,7 +43,7 @@ export class Config {
|
|
|
37
43
|
version: appPackage.version
|
|
38
44
|
},
|
|
39
45
|
arangodb: {
|
|
40
|
-
apiUrl: `http://${
|
|
46
|
+
apiUrl: `http://${arangodbUrl}:${arangodbPort}`,
|
|
41
47
|
database: arangodbDatabase,
|
|
42
48
|
dump: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangodump',
|
|
43
49
|
password: arangodbPassword,
|
package/src/data/posts.ts
CHANGED
|
@@ -9,7 +9,7 @@ import {ArrayCursor} from 'arangojs/lib/cjs/cursor';
|
|
|
9
9
|
import flatten from 'lodash/flatten';
|
|
10
10
|
import uniqBy from 'lodash/uniqBy';
|
|
11
11
|
|
|
12
|
-
import {ApiContext,
|
|
12
|
+
import {ApiContext, FileType, GroupType, PostOptions, PostType, TagType} from '../types';
|
|
13
13
|
import {getLimit, useDb} from '../utils';
|
|
14
14
|
import {updateFiles} from './files';
|
|
15
15
|
import {extractTags} from './tags';
|
|
@@ -17,6 +17,24 @@ import {extractTags} from './tags';
|
|
|
17
17
|
// const eventCategory: string = 'posts';
|
|
18
18
|
const MAX_CONTENT_LENGTH: number = 100000;
|
|
19
19
|
|
|
20
|
+
export const parsePostOptions = (options: PostOptions = {}) => {
|
|
21
|
+
const {
|
|
22
|
+
from = 0,
|
|
23
|
+
latitude,
|
|
24
|
+
longitude,
|
|
25
|
+
to = 30,
|
|
26
|
+
type = 'default'
|
|
27
|
+
} = options;
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
latitude: parseNum(latitude, 32),
|
|
32
|
+
longitude: parseNum(longitude, 32),
|
|
33
|
+
limit: getLimit(from, to),
|
|
34
|
+
type: parseChar(type, 32)
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
20
38
|
export const getPostOptional = (fields: string[]) =>
|
|
21
39
|
fields.reduce((selects: any, field: string) => {
|
|
22
40
|
switch(field) {
|
|
@@ -53,13 +71,13 @@ export const getPostOptional = (fields: string[]) =>
|
|
|
53
71
|
}
|
|
54
72
|
}, {objects: [], queries: []});
|
|
55
73
|
|
|
56
|
-
export const getPostList = (context: ApiContext,
|
|
74
|
+
export const getPostList = (context: ApiContext, options?: PostOptions): Promise<PostType[]> => {
|
|
57
75
|
// const action: string = 'getListByApp';
|
|
58
76
|
const {database, fields} = context;
|
|
59
|
-
const limit
|
|
77
|
+
const {limit, type} = parsePostOptions(options);
|
|
60
78
|
const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
|
|
61
79
|
const aqlQry: string = `FOR p IN posts
|
|
62
|
-
FILTER p.privacy == "public" && p.parent == null
|
|
80
|
+
FILTER p.type == "${type}" && p.privacy == "public" && p.parent == null
|
|
63
81
|
${selectQueries.join('\n')}
|
|
64
82
|
${limit.aql}
|
|
65
83
|
SORT p.added
|
|
@@ -72,7 +90,7 @@ export const getPostList = (context: ApiContext, from: number, to: number): Prom
|
|
|
72
90
|
});
|
|
73
91
|
};
|
|
74
92
|
|
|
75
|
-
export const getPostListByGroup = (context: ApiContext, groupId: string,
|
|
93
|
+
export const getPostListByGroup = (context: ApiContext, groupId: string, options?: PostOptions): Promise<PostType[]> => {
|
|
76
94
|
// const action: string = 'getListByGroup';
|
|
77
95
|
const {database, fields, userId: sessionId} = context;
|
|
78
96
|
const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
|
|
@@ -88,9 +106,9 @@ export const getPostListByGroup = (context: ApiContext, groupId: string, from: n
|
|
|
88
106
|
.then((cursor: ArrayCursor) => cursor.all())
|
|
89
107
|
.then((groups: GroupType[] = []) => {
|
|
90
108
|
if(groups.length) {
|
|
91
|
-
const limit
|
|
109
|
+
const {limit, type} = parsePostOptions(options);
|
|
92
110
|
const postAqlQry: string = `FOR p IN posts
|
|
93
|
-
FILTER p.groupId == "${formatGroupId}" && p.parent == null
|
|
111
|
+
FILTER p.type == "${type}" && p.groupId == "${formatGroupId}" && p.parent == null
|
|
94
112
|
${selectQueries.join('\n')}
|
|
95
113
|
${limit.aql}
|
|
96
114
|
SORT p.added
|
|
@@ -110,13 +128,13 @@ export const getPostListByGroup = (context: ApiContext, groupId: string, from: n
|
|
|
110
128
|
});
|
|
111
129
|
};
|
|
112
130
|
|
|
113
|
-
export const getPostListByLatest = (context: ApiContext,
|
|
131
|
+
export const getPostListByLatest = (context: ApiContext, options?: PostOptions): Promise<PostType[]> => {
|
|
114
132
|
// const action: string = 'getListByLatest';
|
|
115
133
|
const {database, fields} = context;
|
|
116
|
-
const limit
|
|
134
|
+
const {limit, type} = parsePostOptions(options);
|
|
117
135
|
const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
|
|
118
136
|
const aqlQry: string = `FOR p IN posts
|
|
119
|
-
FILTER p.privacy == "public" && p.parent == null
|
|
137
|
+
FILTER p.type == "${type}" && p.privacy == "public" && p.parent == null
|
|
120
138
|
${selectQueries.join('\n')}
|
|
121
139
|
${limit.aql}
|
|
122
140
|
SORT p.added
|
|
@@ -132,11 +150,11 @@ export const getPostListByLatest = (context: ApiContext, from: number, to: numbe
|
|
|
132
150
|
export const getPostListByTags = (
|
|
133
151
|
context: ApiContext,
|
|
134
152
|
tagNames: string[],
|
|
135
|
-
options
|
|
153
|
+
options?: PostOptions
|
|
136
154
|
): Promise<PostType[]> => {
|
|
137
155
|
// const action: string = 'getListByTags';
|
|
138
156
|
const {database, fields} = context;
|
|
139
|
-
const {latitude, longitude,
|
|
157
|
+
const {latitude, longitude, limit, type} = parsePostOptions(options);
|
|
140
158
|
const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
|
|
141
159
|
const sortBy: string[] = [];
|
|
142
160
|
|
|
@@ -157,12 +175,11 @@ export const getPostListByTags = (
|
|
|
157
175
|
|
|
158
176
|
return Promise.all(
|
|
159
177
|
tagNames.map((tagName: string) => {
|
|
160
|
-
const limit: ArangoDBLimit = getLimit(from, to);
|
|
161
178
|
const aqlQry: string = `FOR targetTag IN tags
|
|
162
179
|
FILTER targetTag.name == "${tagName}"
|
|
163
180
|
FOR p, e IN OUTBOUND targetTag._id isTagged
|
|
164
181
|
${selectQueries.join('\n')}
|
|
165
|
-
FILTER p.privacy == "public" && e.type == 'posts'
|
|
182
|
+
FILTER p.type = "${type}" && p.privacy == "public" && e.type == 'posts'
|
|
166
183
|
${limit.aql}
|
|
167
184
|
SORT ${sortBy.join(', ')}
|
|
168
185
|
RETURN DISTINCT MERGE(p, {${selectObjects.join(', ')}})`;
|
|
@@ -178,15 +195,14 @@ export const getPostListByTags = (
|
|
|
178
195
|
});
|
|
179
196
|
};
|
|
180
197
|
|
|
181
|
-
export const getPostListByUser = (context: ApiContext, userId: string, options): Promise<PostType[]> => {
|
|
198
|
+
export const getPostListByUser = (context: ApiContext, userId: string, options?: PostOptions): Promise<PostType[]> => {
|
|
182
199
|
// const action: string = 'getListByUser';
|
|
183
200
|
const {database, fields} = context;
|
|
184
|
-
const {
|
|
201
|
+
const {limit, type} = parsePostOptions(options);
|
|
185
202
|
const formatUserId: string = parseId(userId);
|
|
186
|
-
const limit: ArangoDBLimit = getLimit(from, to);
|
|
187
203
|
const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
|
|
188
204
|
const aqlQry: string = `FOR p IN posts
|
|
189
|
-
FILTER p.userId == "${formatUserId}" && p.privacy == "public" && p.parent == null
|
|
205
|
+
FILTER p.userId == "${formatUserId}" && p.type == "${type}" && p.privacy == "public" && p.parent == null
|
|
190
206
|
${selectQueries.join('\n')}
|
|
191
207
|
${limit.aql}
|
|
192
208
|
SORT p.added
|
|
@@ -203,14 +219,13 @@ export const getPostListByArea = (
|
|
|
203
219
|
context: ApiContext,
|
|
204
220
|
latitude: number,
|
|
205
221
|
longitude: number,
|
|
206
|
-
|
|
207
|
-
to: number
|
|
222
|
+
options?: PostOptions
|
|
208
223
|
): Promise<PostType[]> => {
|
|
209
224
|
// const action: string = 'getListByUser';
|
|
210
225
|
const {database, fields} = context;
|
|
226
|
+
const {limit, type} = parsePostOptions(options);
|
|
211
227
|
const formatLatitude: number = parseNum(latitude);
|
|
212
228
|
const formatLongitude: number = parseNum(longitude);
|
|
213
|
-
const limit: ArangoDBLimit = getLimit(from, to);
|
|
214
229
|
const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
|
|
215
230
|
selectQueries.push(`LET distance = DISTANCE(
|
|
216
231
|
${formatLatitude},
|
|
@@ -222,7 +237,7 @@ export const getPostListByArea = (
|
|
|
222
237
|
|
|
223
238
|
const aqlQry: string = `FOR p IN posts
|
|
224
239
|
${selectQueries.join('\n')}
|
|
225
|
-
FILTER p.privacy == "public" && p.parentId == null
|
|
240
|
+
FILTER p.type == "${type}" && p.privacy == "public" && p.parentId == null
|
|
226
241
|
${limit.aql}
|
|
227
242
|
SORT distance, p.added
|
|
228
243
|
RETURN DISTINCT MERGE(p, {${selectObjects.join(', ')}})`;
|
|
@@ -241,9 +256,9 @@ export const getPost = (context: ApiContext, itemId: string): Promise<PostType>
|
|
|
241
256
|
const db = useDb(database);
|
|
242
257
|
const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
|
|
243
258
|
const aqlQry: AqlQuery = aql`FOR p IN posts
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
259
|
+
FILTER p._key == ${formatItemId}
|
|
260
|
+
LIMIT 1
|
|
261
|
+
RETURN p`;
|
|
247
262
|
|
|
248
263
|
return db.query(aqlQry)
|
|
249
264
|
.then((cursor: ArrayCursor) => cursor.next())
|
|
@@ -291,17 +306,18 @@ export const getPost = (context: ApiContext, itemId: string): Promise<PostType>
|
|
|
291
306
|
});
|
|
292
307
|
};
|
|
293
308
|
|
|
294
|
-
export const getPostComments = (context: ApiContext, itemId: string,
|
|
309
|
+
export const getPostComments = (context: ApiContext, itemId: string, options?: PostOptions): Promise<PostType[]> => {
|
|
295
310
|
// const action: string = 'getComments';
|
|
296
311
|
const {database, userId: sessionId} = context;
|
|
312
|
+
const {limit, type} = parsePostOptions(options);
|
|
297
313
|
const formatItemId: string = parseId(itemId);
|
|
298
314
|
|
|
299
315
|
// Get the parent post to get restrictions
|
|
300
316
|
const db = useDb(database);
|
|
301
317
|
const aqlQry: AqlQuery = aql`FOR p IN posts
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
318
|
+
FILTER p.type == ${type} && p._key == ${formatItemId}
|
|
319
|
+
LIMIT 1
|
|
320
|
+
RETURN p`;
|
|
305
321
|
|
|
306
322
|
return db.query(aqlQry)
|
|
307
323
|
.then((cursor: ArrayCursor) => cursor.next())
|
|
@@ -314,36 +330,35 @@ export const getPostComments = (context: ApiContext, itemId: string, from: numbe
|
|
|
314
330
|
|
|
315
331
|
// Query based on privacy level
|
|
316
332
|
let privacyAqlQry: string;
|
|
317
|
-
const limit = getLimit(from, to);
|
|
318
333
|
|
|
319
334
|
if(groupId && privacy === 'group') {
|
|
320
335
|
privacyAqlQry = `FOR p IN posts
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
336
|
+
FOR user IN users
|
|
337
|
+
FILTER p.parent == "${_key}" && user._key == p.userId
|
|
338
|
+
LET reactions = (
|
|
339
|
+
FOR post, r IN INBOUND p._id reactions
|
|
340
|
+
COLLECT reactionName = r.value INTO reactionItems
|
|
341
|
+
RETURN {name: reactionName, count: LENGTH(reactionItems[*].r.value)}
|
|
342
|
+
)
|
|
343
|
+
FOR group IN groups
|
|
344
|
+
FILTER group._key == p.groupId
|
|
345
|
+
FOR u, e IN OUTBOUND group._id isGrouped
|
|
346
|
+
FILTER u._key == "${sessionId}"
|
|
347
|
+
SORT p.added
|
|
348
|
+
${limit.aql}
|
|
349
|
+
RETURN MERGE(p, {user: user, reactions: reactions})`;
|
|
335
350
|
} else if(privacy === 'public') {
|
|
336
351
|
privacyAqlQry = `FOR p IN posts
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
352
|
+
FOR user IN users
|
|
353
|
+
FILTER p.parent == "${_key}" && user._key == p.userId
|
|
354
|
+
LET reactions = (
|
|
355
|
+
FOR post, r IN INBOUND p._id reactions
|
|
356
|
+
COLLECT reactionName = r.value INTO reactionItems
|
|
357
|
+
RETURN {name: reactionName, count: LENGTH(reactionItems[*].r.value)}
|
|
358
|
+
)
|
|
359
|
+
SORT p.added
|
|
360
|
+
${limit.aql}
|
|
361
|
+
RETURN MERGE(p, {user: user, reactions: reactions})`;
|
|
347
362
|
}
|
|
348
363
|
|
|
349
364
|
if(privacyAqlQry) {
|
|
@@ -373,7 +388,8 @@ export const addPost = (context: ApiContext, item: PostType): Promise<PostType>
|
|
|
373
388
|
longitude,
|
|
374
389
|
name = '',
|
|
375
390
|
parentId = null,
|
|
376
|
-
privacy = 'public'
|
|
391
|
+
privacy = 'public',
|
|
392
|
+
type = 'default'
|
|
377
393
|
}: PostType = item;
|
|
378
394
|
|
|
379
395
|
const now: number = Date.now();
|
|
@@ -390,6 +406,7 @@ export const addPost = (context: ApiContext, item: PostType): Promise<PostType>
|
|
|
390
406
|
name: parseString(name, 160),
|
|
391
407
|
parentId: parentId ? parseId(parentId) : undefined,
|
|
392
408
|
privacy: privacy ? parseVarChar(privacy, 16) : undefined,
|
|
409
|
+
type: parseChar(type, 32),
|
|
393
410
|
userId: sessionId
|
|
394
411
|
};
|
|
395
412
|
|
|
@@ -423,7 +440,8 @@ export const updatePost = (context: ApiContext, item: PostType): Promise<PostTyp
|
|
|
423
440
|
name,
|
|
424
441
|
parentId,
|
|
425
442
|
postId,
|
|
426
|
-
privacy
|
|
443
|
+
privacy,
|
|
444
|
+
type
|
|
427
445
|
}: PostType = item;
|
|
428
446
|
|
|
429
447
|
const update: PostType = {
|
|
@@ -432,6 +450,7 @@ export const updatePost = (context: ApiContext, item: PostType): Promise<PostTyp
|
|
|
432
450
|
name: name ? parseString(name, 160) : undefined,
|
|
433
451
|
parentId: parentId ? parseString(parentId, 160) : undefined,
|
|
434
452
|
privacy: privacy ? parseVarChar(privacy, 16) : undefined,
|
|
453
|
+
type: type !== undefined ? parseChar(type, 16) : undefined
|
|
435
454
|
};
|
|
436
455
|
|
|
437
456
|
let formatId: string = parseId(postId);
|
|
@@ -447,9 +466,9 @@ export const updatePost = (context: ApiContext, item: PostType): Promise<PostTyp
|
|
|
447
466
|
};
|
|
448
467
|
const db: Database = useDb(database);
|
|
449
468
|
const aqlQry: AqlQuery = aql`UPSERT {_key: ${formatId}, userId: ${sessionId}}
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
469
|
+
INSERT ${insert}
|
|
470
|
+
UPDATE ${update}
|
|
471
|
+
IN posts RETURN NEW`;
|
|
453
472
|
|
|
454
473
|
return db.query(aqlQry)
|
|
455
474
|
.then((cursor: ArrayCursor) => cursor.next())
|
|
@@ -528,7 +547,7 @@ export const deletePost = (context: ApiContext, itemId: string): Promise<PostTyp
|
|
|
528
547
|
export const cleanPosts = (database: string): Promise<number> => {
|
|
529
548
|
// Remove all messages that are over 60 days and not saved
|
|
530
549
|
const aqlQry: AqlQuery = aql`FOR p IN posts
|
|
531
|
-
FILTER p.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && p.type ==
|
|
550
|
+
FILTER p.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && p.type == "default"
|
|
532
551
|
REMOVE p IN posts
|
|
533
552
|
RETURN OLD`;
|
|
534
553
|
|
package/src/types/posts.ts
CHANGED
package/lib/config.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export interface AppConfig {
|
|
2
|
-
readonly app?: object;
|
|
3
|
-
readonly arangodb?: object;
|
|
4
|
-
readonly aws?: object;
|
|
5
|
-
readonly giphy?: object;
|
|
6
|
-
readonly google?: object;
|
|
7
|
-
readonly image?: object;
|
|
8
|
-
readonly redis?: object;
|
|
9
|
-
readonly stripe?: object;
|
|
10
|
-
readonly twilio?: object;
|
|
11
|
-
}
|
|
12
|
-
export interface EnvConfig {
|
|
13
|
-
readonly default: AppConfig;
|
|
14
|
-
readonly development: AppConfig;
|
|
15
|
-
readonly production: AppConfig;
|
|
16
|
-
readonly test: AppConfig;
|
|
17
|
-
}
|
|
18
|
-
export declare class Config {
|
|
19
|
-
static values: EnvConfig;
|
|
20
|
-
static get(path: string | string[]): any;
|
|
21
|
-
}
|
package/lib/config.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
2
|
-
|
|
3
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
4
|
-
|
|
5
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
6
|
-
|
|
7
|
-
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; }
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
11
|
-
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
12
|
-
*/
|
|
13
|
-
import _get from 'lodash/get';
|
|
14
|
-
import merge from 'lodash/merge';
|
|
15
|
-
|
|
16
|
-
var appPackage = require('../package.json');
|
|
17
|
-
|
|
18
|
-
var _process$env = process.env,
|
|
19
|
-
arangodbDatabase = _process$env.arangodbDatabase,
|
|
20
|
-
arangodbPassword = _process$env.arangodbPassword,
|
|
21
|
-
_process$env$arangodb = _process$env.arangodbPort,
|
|
22
|
-
arangodbPort = _process$env$arangodb === void 0 ? '8529' : _process$env$arangodb,
|
|
23
|
-
arangodbUrl = _process$env.arangodbUrl,
|
|
24
|
-
arangodbUsername = _process$env.arangodbUsername;
|
|
25
|
-
export var Config =
|
|
26
|
-
/*#__PURE__*/
|
|
27
|
-
function () {
|
|
28
|
-
function Config() {
|
|
29
|
-
_classCallCheck(this, Config);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
_createClass(Config, null, [{
|
|
33
|
-
key: "get",
|
|
34
|
-
value: function get(path) {
|
|
35
|
-
var environment = process.env.stage || 'development';
|
|
36
|
-
var configValues = merge(this.values.default, this.values[environment], {
|
|
37
|
-
environment: environment
|
|
38
|
-
});
|
|
39
|
-
return _get(configValues, path);
|
|
40
|
-
}
|
|
41
|
-
}]);
|
|
42
|
-
|
|
43
|
-
return Config;
|
|
44
|
-
}();
|
|
45
|
-
|
|
46
|
-
_defineProperty(Config, "values", {
|
|
47
|
-
default: {
|
|
48
|
-
app: {
|
|
49
|
-
name: 'reaktor',
|
|
50
|
-
url: 'reaktor.io',
|
|
51
|
-
version: appPackage.version
|
|
52
|
-
},
|
|
53
|
-
arangodb: {
|
|
54
|
-
apiUrl: "http://".concat(arangodbUsername, ":").concat(arangodbPassword, "@").concat(arangodbUrl, ":").concat(arangodbPort),
|
|
55
|
-
database: arangodbDatabase,
|
|
56
|
-
dump: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangodump',
|
|
57
|
-
password: arangodbPassword,
|
|
58
|
-
port: arangodbPort,
|
|
59
|
-
restore: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangorestore',
|
|
60
|
-
url: arangodbUrl,
|
|
61
|
-
username: arangodbUsername
|
|
62
|
-
},
|
|
63
|
-
aws: {
|
|
64
|
-
Bucket: 'dev.reaktor.io',
|
|
65
|
-
accessKeyId: 'AKIAJIYDT3EA2ZFMTJNA',
|
|
66
|
-
maxRetries: 3,
|
|
67
|
-
region: 'us-east-1',
|
|
68
|
-
secretAccessKey: 'bUssQRtJTZC7geF9RDH5KCn8CalVnf2VT34yqS+9',
|
|
69
|
-
signatureVersion: 'v4'
|
|
70
|
-
},
|
|
71
|
-
giphy: {
|
|
72
|
-
key: 'dc6zaTOxFJmzC'
|
|
73
|
-
},
|
|
74
|
-
google: {
|
|
75
|
-
analytics: {
|
|
76
|
-
accountId: '78158717',
|
|
77
|
-
trackingId: 'UA-78158717-1'
|
|
78
|
-
},
|
|
79
|
-
geocode: {
|
|
80
|
-
key: 'AIzaSyBwjmpBjWhiJoBCZiYzRurM9m4WnCxslv0',
|
|
81
|
-
url: 'https://maps.googleapis.com/maps/api/geocode/json'
|
|
82
|
-
},
|
|
83
|
-
key: 'AIzaSyC3_f2Us3y0qjbyMJ-4t5ObtCzfq_FHIgQ'
|
|
84
|
-
},
|
|
85
|
-
image: {
|
|
86
|
-
imgQuality: 90,
|
|
87
|
-
imgSize: 1500,
|
|
88
|
-
thmQuality: 80,
|
|
89
|
-
thmSize: 150
|
|
90
|
-
},
|
|
91
|
-
redis: {
|
|
92
|
-
host: '127.0.0.1',
|
|
93
|
-
port: 6379
|
|
94
|
-
},
|
|
95
|
-
stripe: {
|
|
96
|
-
token: 'sk_test_LS956be57YUXTB5a4sLGb5BQ'
|
|
97
|
-
},
|
|
98
|
-
twilio: {
|
|
99
|
-
number: '+15005550006',
|
|
100
|
-
sid: 'AC6bd7f513cbed2e5134c650be06cc732e',
|
|
101
|
-
token: '520ae739e761bab759b147f1ad28278f'
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
development: {},
|
|
105
|
-
production: {
|
|
106
|
-
arangodb: {
|
|
107
|
-
dump: '/usr/bin/arangodump',
|
|
108
|
-
restore: '/usr/bin/arangorestore'
|
|
109
|
-
},
|
|
110
|
-
aws: {
|
|
111
|
-
Bucket: 'box.reaktor.io'
|
|
112
|
-
},
|
|
113
|
-
redis: {
|
|
114
|
-
host: 'reaktor-redis.ehcvnt.0001.use1.cache.amazonaws.com'
|
|
115
|
-
},
|
|
116
|
-
stripe: {
|
|
117
|
-
token: 'sk_live_bElZl8RLhMCJy33KG4lyLD4o'
|
|
118
|
-
},
|
|
119
|
-
twilio: {
|
|
120
|
-
number: '+18554165227',
|
|
121
|
-
sid: 'AC90b0528a911e652d643329a4d7b4d2c7',
|
|
122
|
-
token: 'a7941d173bd4846d0966a186e9865b72'
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
test: {}
|
|
126
|
-
});
|
|
127
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOlsiZ2V0IiwibWVyZ2UiLCJhcHBQYWNrYWdlIiwicmVxdWlyZSIsInByb2Nlc3MiLCJlbnYiLCJhcmFuZ29kYkRhdGFiYXNlIiwiYXJhbmdvZGJQYXNzd29yZCIsImFyYW5nb2RiUG9ydCIsImFyYW5nb2RiVXJsIiwiYXJhbmdvZGJVc2VybmFtZSIsIkNvbmZpZyIsInBhdGgiLCJlbnZpcm9ubWVudCIsInN0YWdlIiwiY29uZmlnVmFsdWVzIiwidmFsdWVzIiwiZGVmYXVsdCIsImFwcCIsIm5hbWUiLCJ1cmwiLCJ2ZXJzaW9uIiwiYXJhbmdvZGIiLCJhcGlVcmwiLCJkYXRhYmFzZSIsImR1bXAiLCJwYXNzd29yZCIsInBvcnQiLCJyZXN0b3JlIiwidXNlcm5hbWUiLCJhd3MiLCJCdWNrZXQiLCJhY2Nlc3NLZXlJZCIsIm1heFJldHJpZXMiLCJyZWdpb24iLCJzZWNyZXRBY2Nlc3NLZXkiLCJzaWduYXR1cmVWZXJzaW9uIiwiZ2lwaHkiLCJrZXkiLCJnb29nbGUiLCJhbmFseXRpY3MiLCJhY2NvdW50SWQiLCJ0cmFja2luZ0lkIiwiZ2VvY29kZSIsImltYWdlIiwiaW1nUXVhbGl0eSIsImltZ1NpemUiLCJ0aG1RdWFsaXR5IiwidGhtU2l6ZSIsInJlZGlzIiwiaG9zdCIsInN0cmlwZSIsInRva2VuIiwidHdpbGlvIiwibnVtYmVyIiwic2lkIiwiZGV2ZWxvcG1lbnQiLCJwcm9kdWN0aW9uIiwidGVzdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUlBLE9BQU9BLElBQVAsTUFBZ0IsWUFBaEI7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLGNBQWxCOztBQXFCQSxJQUFNQyxVQUFlLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUEvQjs7bUJBRW1HQyxPQUFPLENBQUNDLEc7SUFBcEdDLGdCLGdCQUFBQSxnQjtJQUFrQkMsZ0IsZ0JBQUFBLGdCO3lDQUFrQkMsWTtJQUFBQSxZLHNDQUFlLE07SUFBUUMsVyxn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QUksRUFBRSxxQkFERTtBQUVSRyxNQUFBQSxPQUFPLEVBQUU7QUFGRCxLQURBO0FBS1ZFLElBQUFBLEdBQUcsRUFBRTtBQUNIQyxNQUFBQSxNQUFNLEVBQUU7QUFETCxLQUxLO0FBUVZrQixJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsSUFBSSxFQUFFO0FBREQsS0FSRztBQVdWQyxJQUFBQSxNQUFNLEVBQUU7QUFDTkMsTUFBQUEsS0FBSyxFQUFFO0FBREQsS0FYRTtBQWNWQyxJQUFBQSxNQUFNLEVBQUU7QUFDTkMsTUFBQUEsTUFBTSxFQUFFLGNBREY7QUFFTkMsTUFBQUEsR0FBRyxFQUFFLG9DQUZDO0FBR05ILE1BQUFBLEtBQUssRUFBRTtBQUhEO0FBZEUsR0E1RGE7QUFnRnpCTSxFQUFBQSxJQUFJLEVBQUU7QUFoRm1CLEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZyB7XG4gIHJlYWRvbmx5IGFwcD86IG9iamVjdDtcbiAgcmVhZG9ubHkgYXJhbmdvZGI/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGF3cz86IG9iamVjdDtcbiAgcmVhZG9ubHkgZ2lwaHk/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGdvb2dsZT86IG9iamVjdDtcbiAgcmVhZG9ubHkgaW1hZ2U/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IHJlZGlzPzogb2JqZWN0O1xuICByZWFkb25seSBzdHJpcGU/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IHR3aWxpbz86IG9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZDb25maWcge1xuICByZWFkb25seSBkZWZhdWx0OiBBcHBDb25maWc7XG4gIHJlYWRvbmx5IGRldmVsb3BtZW50OiBBcHBDb25maWc7XG4gIHJlYWRvbmx5IHByb2R1Y3Rpb246IEFwcENvbmZpZztcbiAgcmVhZG9ubHkgdGVzdDogQXBwQ29uZmlnO1xufVxuXG5jb25zdCBhcHBQYWNrYWdlOiBhbnkgPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKTtcblxuY29uc3Qge2FyYW5nb2RiRGF0YWJhc2UsIGFyYW5nb2RiUGFzc3dvcmQsIGFyYW5nb2RiUG9ydCA9ICc4NTI5JywgYXJhbmdvZGJVcmwsIGFyYW5nb2RiVXNlcm5hbWV9ID0gcHJvY2Vzcy5lbnY7XG5cbmV4cG9ydCBjbGFzcyBDb25maWcge1xuICBzdGF0aWMgdmFsdWVzOiBFbnZDb25maWcgPSB7XG4gICAgZGVmYXVsdDoge1xuICAgICAgYXBwOiB7XG4gICAgICAgIG5hbWU6ICdyZWFrdG9yJyxcbiAgICAgICAgdXJsOiAncmVha3Rvci5pbycsXG4gICAgICAgIHZlcnNpb246IGFwcFBhY2thZ2UudmVyc2lvblxuICAgICAgfSxcbiAgICAgIGFyYW5nb2RiOiB7XG4gICAgICAgIGFwaVVybDogYGh0dHA6Ly8ke2FyYW5nb2RiVXNlcm5hbWV9OiR7YXJhbmdvZGJQYXNzd29yZH1AJHthcmFuZ29kYlVybH06JHthcmFuZ29kYlBvcnR9YCxcbiAgICAgICAgZGF0YWJhc2U6IGFyYW5nb2RiRGF0YWJhc2UsXG4gICAgICAgIGR1bXA6ICcvQXBwbGljYXRpb25zL0FyYW5nb0RCLUNMSS5hcHAvQ29udGVudHMvTWFjT1MvYXJhbmdvZHVtcCcsXG4gICAgICAgIHBhc3N3b3JkOiBhcmFuZ29kYlBhc3N3b3JkLFxuICAgICAgICBwb3J0OiBhcmFuZ29kYlBvcnQsXG4gICAgICAgIHJlc3RvcmU6ICcvQXBwbGljYXRpb25zL0FyYW5nb0RCLUNMSS5hcHAvQ29udGVudHMvTWFjT1MvYXJhbmdvcmVzdG9yZScsXG4gICAgICAgIHVybDogYXJhbmdvZGJVcmwsXG4gICAgICAgIHVzZXJuYW1lOiBhcmFuZ29kYlVzZXJuYW1lXG4gICAgICB9LFxuICAgICAgYXdzOiB7XG4gICAgICAgIEJ1Y2tldDogJ2Rldi5yZWFrdG9yLmlvJyxcbiAgICAgICAgYWNjZXNzS2V5SWQ6ICdBS0lBSklZRFQzRUEyWkZNVEpOQScsXG4gICAgICAgIG1heFJldHJpZXM6IDMsXG4gICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogJ2JVc3NRUnRKVFpDN2dlRjlSREg1S0NuOENhbFZuZjJWVDM0eXFTKzknLFxuICAgICAgICBzaWduYXR1cmVWZXJzaW9uOiAndjQnXG4gICAgICB9LFxuICAgICAgZ2lwaHk6IHtcbiAgICAgICAga2V5OiAnZGM2emFUT3hGSm16QydcbiAgICAgIH0sXG4gICAgICBnb29nbGU6IHtcbiAgICAgICAgYW5hbHl0aWNzOiB7XG4gICAgICAgICAgYWNjb3VudElkOiAnNzgxNTg3MTcnLFxuICAgICAgICAgIHRyYWNraW5nSWQ6ICdVQS03ODE1ODcxNy0xJ1xuICAgICAgICB9LFxuICAgICAgICBnZW9jb2RlOiB7XG4gICAgICAgICAga2V5OiAnQUl6YVN5QndqbXBCaldoaUpvQkNaaVl6UnVyTTltNFduQ3hzbHYwJyxcbiAgICAgICAgICB1cmw6ICdodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvZ2VvY29kZS9qc29uJ1xuICAgICAgICB9LFxuICAgICAgICBrZXk6ICdBSXphU3lDM19mMlVzM3kwcWpieU1KLTR0NU9idEN6ZnFfRkhJZ1EnXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgaW1nUXVhbGl0eTogOTAsXG4gICAgICAgIGltZ1NpemU6IDE1MDAsXG4gICAgICAgIHRobVF1YWxpdHk6IDgwLFxuICAgICAgICB0aG1TaXplOiAxNTBcbiAgICAgIH0sXG4gICAgICByZWRpczoge1xuICAgICAgICBob3N0OiAnMTI3LjAuMC4xJyxcbiAgICAgICAgcG9ydDogNjM3OVxuICAgICAgfSxcbiAgICAgIHN0cmlwZToge1xuICAgICAgICB0b2tlbjogJ3NrX3Rlc3RfTFM5NTZiZTU3WVVYVEI1YTRzTEdiNUJRJ1xuICAgICAgfSxcbiAgICAgIHR3aWxpbzoge1xuICAgICAgICBudW1iZXI6ICcrMTUwMDU1NTAwMDYnLFxuICAgICAgICBzaWQ6ICdBQzZiZDdmNTEzY2JlZDJlNTEzNGM2NTBiZTA2Y2M3MzJlJyxcbiAgICAgICAgdG9rZW46ICc1MjBhZTczOWU3NjFiYWI3NTliMTQ3ZjFhZDI4Mjc4ZidcbiAgICAgIH1cbiAgICB9LFxuICAgIGRldmVsb3BtZW50OiB7XG4gICAgfSxcbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICBhcmFuZ29kYjoge1xuICAgICAgICBkdW1wOiAnL3Vzci9iaW4vYXJhbmdvZHVtcCcsXG4gICAgICAgIHJlc3RvcmU6ICcvdXNyL2Jpbi9hcmFuZ29yZXN0b3JlJyxcbiAgICAgIH0sXG4gICAgICBhd3M6IHtcbiAgICAgICAgQnVja2V0OiAnYm94LnJlYWt0b3IuaW8nXG4gICAgICB9LFxuICAgICAgcmVkaXM6IHtcbiAgICAgICAgaG9zdDogJ3JlYWt0b3ItcmVkaXMuZWhjdm50LjAwMDEudXNlMS5jYWNoZS5hbWF6b25hd3MuY29tJ1xuICAgICAgfSxcbiAgICAgIHN0cmlwZToge1xuICAgICAgICB0b2tlbjogJ3NrX2xpdmVfYkVsWmw4UkxoTUNKeTMzS0c0bHlMRDRvJ1xuICAgICAgfSxcbiAgICAgIHR3aWxpbzoge1xuICAgICAgICBudW1iZXI6ICcrMTg1NTQxNjUyMjcnLFxuICAgICAgICBzaWQ6ICdBQzkwYjA1MjhhOTExZTY1MmQ2NDMzMjlhNGQ3YjRkMmM3JyxcbiAgICAgICAgdG9rZW46ICdhNzk0MWQxNzNiZDQ4NDZkMDk2NmExODZlOTg2NWI3MidcbiAgICAgIH1cbiAgICB9LFxuICAgIHRlc3Q6IHtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGdldChwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGFueSB7XG4gICAgY29uc3QgZW52aXJvbm1lbnQ6IHN0cmluZyA9IHByb2Nlc3MuZW52LnN0YWdlIHx8ICdkZXZlbG9wbWVudCc7XG4gICAgY29uc3QgY29uZmlnVmFsdWVzOiBvYmplY3QgPSBtZXJnZSh0aGlzLnZhbHVlcy5kZWZhdWx0LCB0aGlzLnZhbHVlc1tlbnZpcm9ubWVudF0sIHtlbnZpcm9ubWVudH0pO1xuICAgIHJldHVybiBnZXQoY29uZmlnVmFsdWVzLCBwYXRoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ApiContext } from 'types/auth';
|
|
2
|
-
import { ConversationType } from '../types';
|
|
3
|
-
export declare const getConversationList: (context: ApiContext, from: number, to: number) => Promise<ConversationType[]>;
|
|
4
|
-
export declare const getDirectConversation: (context: ApiContext, userId: string) => Promise<ConversationType>;
|
|
5
|
-
export declare const getConversation: (context: ApiContext, convoId: string) => Promise<ConversationType>;
|
|
6
|
-
export declare const updateConversation: (context: ApiContext, item: any) => Promise<ConversationType>;
|