@roadmanjs/chat 0.0.25 → 0.0.26
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ContextType, ChatResType } from '../../shared/ContextType';
|
|
2
2
|
import { ChatMessage, ChatMessageType } from '../models/ChatMessage.model';
|
|
3
3
|
export declare class ChatMessageResolver {
|
|
4
|
-
chatMessage(convoId: string, before: Date, after: Date,
|
|
4
|
+
chatMessage(convoId: string, before: Date, after: Date, limitArg: any): Promise<{
|
|
5
5
|
items: ChatMessage[];
|
|
6
6
|
hasNext: boolean;
|
|
7
7
|
params: any;
|
|
@@ -49,7 +49,15 @@ const ChatConvo_model_1 = require("../models/ChatConvo.model");
|
|
|
49
49
|
const couchset_2 = require("@roadmanjs/couchset");
|
|
50
50
|
const ChatPagination = (0, ContextType_1.getPagination)(ChatMessage_model_1.ChatMessage);
|
|
51
51
|
let ChatMessageResolver = class ChatMessageResolver {
|
|
52
|
-
async chatMessage(convoId,
|
|
52
|
+
async chatMessage(convoId,
|
|
53
|
+
// @Arg('sort', () => String, {nullable: true}) sortArg?: string,
|
|
54
|
+
before, after, limitArg) {
|
|
55
|
+
// TODO add sort, by default it's just new to old
|
|
56
|
+
const bucket = couchset_2.connectionOptions.bucketName;
|
|
57
|
+
const sign = before ? '<=' : '>=';
|
|
58
|
+
const time = new Date(before || after);
|
|
59
|
+
const limit = limitArg || 10;
|
|
60
|
+
const limitPassed = limit + 1;
|
|
53
61
|
const copyParams = (0, pickBy_1.default)({
|
|
54
62
|
convoId,
|
|
55
63
|
before,
|
|
@@ -57,9 +65,6 @@ let ChatMessageResolver = class ChatMessageResolver {
|
|
|
57
65
|
limit,
|
|
58
66
|
}, identity_1.default);
|
|
59
67
|
try {
|
|
60
|
-
const bucket = couchset_2.connectionOptions.bucketName;
|
|
61
|
-
const sign = before ? '<' : '>';
|
|
62
|
-
const time = new Date(before || after);
|
|
63
68
|
const query = `
|
|
64
69
|
SELECT *
|
|
65
70
|
FROM \`${bucket}\` chat
|
|
@@ -69,34 +74,26 @@ let ChatMessageResolver = class ChatMessageResolver {
|
|
|
69
74
|
AND chat.convoId = "${convoId}"
|
|
70
75
|
AND chat.createdAt ${sign} "${time.toISOString()}"
|
|
71
76
|
ORDER BY chat.createdAt DESC
|
|
72
|
-
LIMIT ${
|
|
77
|
+
LIMIT ${limitPassed};
|
|
73
78
|
`;
|
|
74
|
-
// const query = `
|
|
75
|
-
// SELECT *
|
|
76
|
-
// FROM \`${bucket}\` chat
|
|
77
|
-
// JOIN \`${bucket}\` owner
|
|
78
|
-
// ON KEYS chat.owner
|
|
79
|
-
// LEFT NEST \`${bucket}\` attachments
|
|
80
|
-
// ON KEYS chat.attachments
|
|
81
|
-
// WHERE chat._type = "${ChatMessageModelName}"
|
|
82
|
-
// AND chat.convoId = "${convoId}"
|
|
83
|
-
// AND chat.updatedAt ${sign} "${time}"
|
|
84
|
-
// LIMIT ${limit};
|
|
85
|
-
// `;
|
|
86
79
|
const [errorFetching, data = []] = await (0, client_graphql_1.awaitTo)(ChatMessage_model_1.default.customQuery({
|
|
87
|
-
limit,
|
|
80
|
+
limit: limitPassed,
|
|
88
81
|
query,
|
|
89
82
|
params: copyParams,
|
|
90
83
|
}));
|
|
91
84
|
if (errorFetching) {
|
|
92
85
|
throw errorFetching;
|
|
93
86
|
}
|
|
94
|
-
const [rows = []
|
|
87
|
+
const [rows = []] = data;
|
|
88
|
+
const hasNext = rows.length > limit;
|
|
89
|
+
if (hasNext) {
|
|
90
|
+
rows.pop(); // remove last element
|
|
91
|
+
}
|
|
95
92
|
const dataToSend = rows.map((d) => {
|
|
96
93
|
const { chat, attachments, owner } = d;
|
|
97
94
|
return ChatMessage_model_1.default.parse(Object.assign(Object.assign({}, chat), { attachments, owner: owner[0] || null }));
|
|
98
95
|
});
|
|
99
|
-
return
|
|
96
|
+
return { items: dataToSend, params: copyParams, hasNext };
|
|
100
97
|
}
|
|
101
98
|
catch (error) {
|
|
102
99
|
(0, logs_1.log)('error getting chat messages', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatMessage.resolver.js","sourceRoot":"","sources":["../../../src/chat/resolvers/ChatMessage.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAQkB;AAClB,2DAA+C;AAC/C,0DAAiF;AACjF,+DAAuC;AACvC,2DAAmC;AACnC,0CAAoC;AACpC,mDAAyC;AACzC,iFAIqC;AACrC,4DAAgE;AAChE,+DAAoD;AACpD,kDAAoE;AAEpE,MAAM,cAAc,GAAG,IAAA,2BAAa,EAAC,+BAAW,CAAC,CAAC;AAGlD,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAG5B,KAAK,CAAC,WAAW,CACoC,OAAe,
|
|
1
|
+
{"version":3,"file":"ChatMessage.resolver.js","sourceRoot":"","sources":["../../../src/chat/resolvers/ChatMessage.resolver.ts"],"names":[],"mappings":"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"}
|