@roadmanjs/chat 0.0.25 → 0.0.28
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/dist/chat/methods/ChatConvo.methods.d.ts +1 -0
- package/dist/chat/methods/ChatConvo.methods.js +23 -1
- package/dist/chat/methods/ChatConvo.methods.js.map +1 -1
- package/dist/chat/resolvers/ChatConvo.resolver.d.ts +1 -1
- package/dist/chat/resolvers/ChatConvo.resolver.js +17 -8
- package/dist/chat/resolvers/ChatConvo.resolver.js.map +1 -1
- package/dist/chat/resolvers/ChatMessage.resolver.d.ts +1 -1
- package/dist/chat/resolvers/ChatMessage.resolver.js +21 -21
- package/dist/chat/resolvers/ChatMessage.resolver.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,3 +2,4 @@ import { ChatConvo, ChatConvoType } from '../models/ChatConvo.model';
|
|
|
2
2
|
export declare const createAConvoAndReturnIt: (newConvo: ChatConvoType) => Promise<ChatConvoType>;
|
|
3
3
|
export declare const createChatConvoType: (props: Partial<ChatConvoType>) => Promise<ChatConvoType[]>;
|
|
4
4
|
export declare const getChatConvoById: (id: string) => Promise<ChatConvo | null>;
|
|
5
|
+
export declare const updateConvoLastMessage: (convoId: string, lastMessageId: string) => Promise<boolean>;
|
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.getChatConvoById = exports.createChatConvoType = exports.createAConvoAndReturnIt = void 0;
|
|
40
|
+
exports.updateConvoLastMessage = exports.getChatConvoById = exports.createChatConvoType = exports.createAConvoAndReturnIt = void 0;
|
|
41
41
|
const ChatConvo_model_1 = __importStar(require("../models/ChatConvo.model"));
|
|
42
42
|
const couchset_1 = require("@roadmanjs/couchset");
|
|
43
43
|
const client_graphql_1 = require("@stoqey/client-graphql");
|
|
@@ -119,4 +119,26 @@ const getChatConvoById = async (id) => {
|
|
|
119
119
|
}
|
|
120
120
|
};
|
|
121
121
|
exports.getChatConvoById = getChatConvoById;
|
|
122
|
+
const updateConvoLastMessage = async (convoId, lastMessageId) => {
|
|
123
|
+
try {
|
|
124
|
+
// find all convo by convoId
|
|
125
|
+
// add update them all with the new lastMessageId
|
|
126
|
+
const convos = await ChatConvo_model_1.default.pagination({
|
|
127
|
+
select: ChatConvo_model_1.chatConvoSelectors,
|
|
128
|
+
where: { convoId: { $eq: convoId } },
|
|
129
|
+
});
|
|
130
|
+
if (!(0, isEmpty_1.default)(convos)) {
|
|
131
|
+
const [errorConvos, updatedConvos] = await (0, client_graphql_1.awaitTo)(Promise.all(convos.map((convo) => (0, couchset_1.createUpdate)(Object.assign({ model: ChatConvo_model_1.default, data: Object.assign(Object.assign({}, convo), { lastMessage: lastMessageId, unread: (convo.unread || 0) + 1 }) }, convo)))));
|
|
132
|
+
if (errorConvos) {
|
|
133
|
+
throw errorConvos;
|
|
134
|
+
}
|
|
135
|
+
(0, logs_1.log)(`updated convos with lastMessage=${lastMessageId}`, updatedConvos.map((uc) => uc.id));
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
exports.updateConvoLastMessage = updateConvoLastMessage;
|
|
122
144
|
//# sourceMappingURL=ChatConvo.methods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatConvo.methods.js","sourceRoot":"","sources":["../../../src/chat/methods/ChatConvo.methods.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ChatConvo.methods.js","sourceRoot":"","sources":["../../../src/chat/methods/ChatConvo.methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export declare class ChatConvoResolver {
|
|
|
6
6
|
message: string;
|
|
7
7
|
}): String[];
|
|
8
8
|
chatConvoById(id: string): Promise<ChatConvo>;
|
|
9
|
-
chatConvo(owner: string, before: Date, after: Date,
|
|
9
|
+
chatConvo(owner: string, before: Date, after: Date, limitArg: any): Promise<{
|
|
10
10
|
items: ChatConvo[];
|
|
11
11
|
hasNext: boolean;
|
|
12
12
|
params: any;
|
|
@@ -63,7 +63,15 @@ let ChatConvoResolver = class ChatConvoResolver {
|
|
|
63
63
|
return null;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
async chatConvo(owner,
|
|
66
|
+
async chatConvo(owner,
|
|
67
|
+
// @Arg('sort', () => String, {nullable: true}) sortArg?: string,
|
|
68
|
+
before, after, limitArg) {
|
|
69
|
+
const bucket = couchset_1.connectionOptions.bucketName;
|
|
70
|
+
const sign = before ? '<=' : '>=';
|
|
71
|
+
// const sort = sortArg || 'DESC';
|
|
72
|
+
const time = new Date(before || after);
|
|
73
|
+
const limit = limitArg || 10;
|
|
74
|
+
const limitPassed = limit + 1;
|
|
67
75
|
const copyParams = (0, lodash_1.pickBy)({
|
|
68
76
|
owner,
|
|
69
77
|
before,
|
|
@@ -71,9 +79,6 @@ let ChatConvoResolver = class ChatConvoResolver {
|
|
|
71
79
|
limit,
|
|
72
80
|
}, lodash_1.identity);
|
|
73
81
|
try {
|
|
74
|
-
const bucket = couchset_1.connectionOptions.bucketName;
|
|
75
|
-
const sign = before ? '<=' : '>=';
|
|
76
|
-
const time = new Date(before || after);
|
|
77
82
|
const query = `
|
|
78
83
|
SELECT *
|
|
79
84
|
FROM \`${bucket}\` convo
|
|
@@ -88,7 +93,7 @@ let ChatConvoResolver = class ChatConvoResolver {
|
|
|
88
93
|
AND convo.owner = "${owner}"
|
|
89
94
|
AND convo.updatedAt ${sign} "${time.toISOString()}"
|
|
90
95
|
ORDER BY convo.updatedAt DESC
|
|
91
|
-
LIMIT ${
|
|
96
|
+
LIMIT ${limitPassed};
|
|
92
97
|
`;
|
|
93
98
|
const [errorFetching, data = []] = await (0, client_graphql_1.awaitTo)(ChatConvo_model_1.default.customQuery({
|
|
94
99
|
limit,
|
|
@@ -98,17 +103,21 @@ let ChatConvoResolver = class ChatConvoResolver {
|
|
|
98
103
|
if (errorFetching) {
|
|
99
104
|
throw errorFetching;
|
|
100
105
|
}
|
|
101
|
-
const [rows = []
|
|
106
|
+
const [rows = []] = data;
|
|
107
|
+
const hasNext = rows.length > limit;
|
|
108
|
+
if (hasNext) {
|
|
109
|
+
rows.pop(); // remove last element
|
|
110
|
+
}
|
|
102
111
|
const dataToSend = rows.map((d) => {
|
|
103
112
|
const { convo, lastMessage, members, owner } = d;
|
|
104
113
|
return ChatConvo_model_1.default.parse(Object.assign(Object.assign({}, convo), { members,
|
|
105
114
|
lastMessage,
|
|
106
115
|
owner }));
|
|
107
116
|
});
|
|
108
|
-
return
|
|
117
|
+
return { items: dataToSend, params: copyParams, hasNext };
|
|
109
118
|
}
|
|
110
119
|
catch (error) {
|
|
111
|
-
(0, logs_1.log)('error getting chat
|
|
120
|
+
(0, logs_1.log)('error getting chat convos', error);
|
|
112
121
|
return { items: [], hasNext: false, params: copyParams };
|
|
113
122
|
}
|
|
114
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatConvo.resolver.js","sourceRoot":"","sources":["../../../src/chat/resolvers/ChatConvo.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA+F;AAC/F,2DAA+C;AAC/C,kDAAsD;AACtD,mCAAiD;AACjD,6EAImC;AACnC,oEAIsC;AACtC,0CAAoC;AACpC,0CAAuC;AACvC,0DAAoE;AAEpE,MAAM,eAAe,GAAG,IAAA,2BAAa,EAAC,2BAAS,CAAC,CAAC;AAGjD,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,cAAc;IAKd,WAAW,CACC,IAAwC;IAChD,kCAAkC;;QAElC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAID,KAAK,CAAC,aAAa,CAC6B,EAAU;QAEtD,IAAI;YACA,MAAM,SAAS,GAAG,MAAM,IAAA,oCAAgB,EAAC,EAAE,CAAC,CAAC;YAE7C,IAAI,SAAS,EAAE;gBACX,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC9C;QAAC,OAAO,KAAK,EAAE;YACZ,IAAA,UAAG,EAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAID,KAAK,CAAC,SAAS,CACoC,KAAa,
|
|
1
|
+
{"version":3,"file":"ChatConvo.resolver.js","sourceRoot":"","sources":["../../../src/chat/resolvers/ChatConvo.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA+F;AAC/F,2DAA+C;AAC/C,kDAAsD;AACtD,mCAAiD;AACjD,6EAImC;AACnC,oEAIsC;AACtC,0CAAoC;AACpC,0CAAuC;AACvC,0DAAoE;AAEpE,MAAM,eAAe,GAAG,IAAA,2BAAa,EAAC,2BAAS,CAAC,CAAC;AAGjD,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,cAAc;IAKd,WAAW,CACC,IAAwC;IAChD,kCAAkC;;QAElC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAID,KAAK,CAAC,aAAa,CAC6B,EAAU;QAEtD,IAAI;YACA,MAAM,SAAS,GAAG,MAAM,IAAA,oCAAgB,EAAC,EAAE,CAAC,CAAC;YAE7C,IAAI,SAAS,EAAE;gBACX,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC9C;QAAC,OAAO,KAAK,EAAE;YACZ,IAAA,UAAG,EAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAID,KAAK,CAAC,SAAS,CACoC,KAAa;IAC5D,iEAAiE;IACpB,MAAY,EACb,KAAW,EACT,QAAQ;QAEtD,MAAM,MAAM,GAAG,4BAAiB,CAAC,UAAU,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClC,kCAAkC;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC;QAE9B,MAAM,UAAU,GAAG,IAAA,eAAM,EACrB;YACI,KAAK;YACL,MAAM;YACN,KAAK;YACL,KAAK;SACR,EACD,iBAAQ,CACX,CAAC;QAEF,IAAI;YACA,MAAM,KAAK,GAAG;;eAEX,MAAM;iBACJ,MAAM;;iBAEN,MAAM;;sBAED,MAAM;;;+BAGG,oCAAkB;6BACpB,KAAK;8BACJ,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;;gBAEzC,WAAW;OACpB,CAAC;YAEI,MAAM,CAAC,aAAa,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,MAAM,IAAA,wBAAO,EAC5C,yBAAc,CAAC,WAAW,CAAM;gBAC5B,KAAK;gBACL,KAAK;gBACL,MAAM,EAAE,UAAU;aACrB,CAAC,CACL,CAAC;YAEF,IAAI,aAAa,EAAE;gBACf,MAAM,aAAa,CAAC;aACvB;YAED,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpC,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,sBAAsB;aACrC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9B,MAAM,EAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAC,GAAG,CAAC,CAAC;gBAC/C,OAAO,yBAAc,CAAC,KAAK,iCACpB,KAAK,KACR,OAAO;oBACP,WAAW;oBACX,KAAK,IACP,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC;SAC3D;QAAC,OAAO,KAAK,EAAE;YACZ,IAAA,UAAG,EAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAC,CAAC;SAC1D;IACL,CAAC;IAID,KAAK,CAAC,eAAe,CACmC,IAAmB;QAEvE,IAAI;YACA,cAAc;YACd,MAAM,EAAC,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC;YAElD,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,GAAG,EAAE,CAAC,GAAG,MAAM,IAAA,wBAAO,EAC7D,IAAA,uCAAmB,EAAC;gBAChB,OAAO;gBACP,KAAK;aACR,CAAC,CACL,CAAC;YAEF,IAAI,kBAAkB,EAAE;gBACpB,MAAM,kBAAkB,CAAC;aAC5B;YAED,IAAI,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,KAAK,EAAE;gBACP,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;gBACvE,IAAI,QAAQ,EAAE;oBACV,KAAK,GAAG,QAAQ,CAAC;iBACpB;aACJ;YAED,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;SACvC;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvC,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,EAAC,CAAC;SACxD;IACL,CAAC;IAID,KAAK,CAAC,UAAU,CACwC,IAAmB;QAEvE,IAAI;YACA,cAAc;YACd,MAAM,EAAC,OAAO,GAAG,EAAE,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC;YAEnC,MAAM,KAAK,GAAG,CAAC,CAAC;YAEhB,MAAM,MAAM,GAAG,4BAAiB,CAAC,UAAU,CAAC;YAE5C,MAAM,aAAa,GAAG;0BACR,MAAM;;iBAEf,MAAM;;iBAEN,MAAM;;sBAED,MAAM;;;uDAG2B,OAAO,CAAC,CAAC,CAAC;sDACX,OAAO,CAAC,CAAC,CAAC;6BACnC,KAAK;;OAE3B,CAAC;YAEI,MAAM,CAAC,oBAAoB,EAAE,cAAc,GAAG,EAAE,CAAC,GAAG,MAAM,IAAA,wBAAO,EAC7D,yBAAc,CAAC,WAAW,CAAC;gBACvB,KAAK,EAAE,aAAa;gBACpB,KAAK;gBACL,MAAM,EAAE;oBACJ,KAAK;oBACL,OAAO;iBACV;aACJ,CAAC,CACL,CAAC;YAEF,IAAI,oBAAoB,EAAE;gBACtB,MAAM,oBAAoB,CAAC;aAC9B;YAED,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,cAAc,CAAC;YAErC,IAAI,CAAC,IAAA,gBAAO,EAAC,MAAM,CAAC,EAAE;gBAClB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;oBACrC,MAAM,EAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAC,GAAG,CAAC,CAAC;oBAC/C,OAAO,yBAAc,CAAC,KAAK,iCACpB,KAAK,KACR,OAAO;wBACP,WAAW;wBACX,KAAK,IACP,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAC,CAAC;aAC/C;iBAAM;gBACH,yCAAyC;gBACzC,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,GAAG,MAAM,IAAA,wBAAO,EACpD,IAAA,2CAAuB,EAAC,IAAI,CAAC,CAChC,CAAC;gBACF,IAAI,kBAAkB,EAAE;oBACpB,MAAM,kBAAkB,CAAC;iBAC5B;gBAED,MAAM,SAAS,GAAG,YAAY,IAAI,YAAY,CAAC,EAAE,CAAC;gBAClD,MAAM,SAAS,GAAG,MAAM,IAAA,oCAAgB,EAAC,SAAgB,CAAC,CAAC;gBAC3D,IAAI,SAAS,EAAE;oBACX,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;iBAC3C;gBACD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC;aAC9C;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvC,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,EAAC,CAAC;SACxD;IACL,CAAC;CACJ,CAAA;AA7NG;IAJC,IAAA,2BAAY,EAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,EAAE,2BAAS,CAAC,IAAI;QACtB,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;KAChE,CAAC;IAEG,WAAA,IAAA,mBAAI,GAAE,CAAA;oDAIV;AAID;IAFC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,2BAAS,CAAC;IACtB,IAAA,4BAAa,EAAC,aAAM,CAAC;IAEjB,WAAA,IAAA,kBAAG,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAA;sDAc9C;AAID;IAFC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,eAAe,CAAC;IAC5B,IAAA,4BAAa,EAAC,aAAM,CAAC;IAEjB,WAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAA;IAE7C,WAAA,IAAA,kBAAG,EAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;IAC3C,WAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;IAC1C,WAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;kDAwEhD;AAID;IAFC,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,yBAAW,CAAC;IAC3B,IAAA,4BAAa,EAAC,aAAM,CAAC;IAEjB,WAAA,IAAA,kBAAG,EAAC,MAAM,EAAE,GAAG,EAAE,CAAC,+BAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;wDA8BtD;AAID;IAFC,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,yBAAW,CAAC;IAC3B,IAAA,4BAAa,EAAC,aAAM,CAAC;IAEjB,WAAA,IAAA,kBAAG,EAAC,MAAM,EAAE,GAAG,EAAE,CAAC,+BAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;mDA2EtD;AAlOQ,iBAAiB;IAD7B,IAAA,uBAAQ,GAAE;GACE,iBAAiB,CAmO7B;AAnOY,8CAAiB;AAqO9B,kBAAe,iBAAiB,CAAC"}
|
|
@@ -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;
|
|
@@ -47,9 +47,18 @@ const ChatMessage_model_1 = __importStar(require("../models/ChatMessage.model"))
|
|
|
47
47
|
const pubsub_utils_1 = require("../../shared/pubsub.utils");
|
|
48
48
|
const ChatConvo_model_1 = require("../models/ChatConvo.model");
|
|
49
49
|
const couchset_2 = require("@roadmanjs/couchset");
|
|
50
|
+
const __1 = require("..");
|
|
50
51
|
const ChatPagination = (0, ContextType_1.getPagination)(ChatMessage_model_1.ChatMessage);
|
|
51
52
|
let ChatMessageResolver = class ChatMessageResolver {
|
|
52
|
-
async chatMessage(convoId,
|
|
53
|
+
async chatMessage(convoId,
|
|
54
|
+
// @Arg('sort', () => String, {nullable: true}) sortArg?: string,
|
|
55
|
+
before, after, limitArg) {
|
|
56
|
+
// TODO add sort, by default it's just new to old
|
|
57
|
+
const bucket = couchset_2.connectionOptions.bucketName;
|
|
58
|
+
const sign = before ? '<=' : '>=';
|
|
59
|
+
const time = new Date(before || after);
|
|
60
|
+
const limit = limitArg || 10;
|
|
61
|
+
const limitPassed = limit + 1;
|
|
53
62
|
const copyParams = (0, pickBy_1.default)({
|
|
54
63
|
convoId,
|
|
55
64
|
before,
|
|
@@ -57,9 +66,6 @@ let ChatMessageResolver = class ChatMessageResolver {
|
|
|
57
66
|
limit,
|
|
58
67
|
}, identity_1.default);
|
|
59
68
|
try {
|
|
60
|
-
const bucket = couchset_2.connectionOptions.bucketName;
|
|
61
|
-
const sign = before ? '<' : '>';
|
|
62
|
-
const time = new Date(before || after);
|
|
63
69
|
const query = `
|
|
64
70
|
SELECT *
|
|
65
71
|
FROM \`${bucket}\` chat
|
|
@@ -69,34 +75,26 @@ let ChatMessageResolver = class ChatMessageResolver {
|
|
|
69
75
|
AND chat.convoId = "${convoId}"
|
|
70
76
|
AND chat.createdAt ${sign} "${time.toISOString()}"
|
|
71
77
|
ORDER BY chat.createdAt DESC
|
|
72
|
-
LIMIT ${
|
|
78
|
+
LIMIT ${limitPassed};
|
|
73
79
|
`;
|
|
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
80
|
const [errorFetching, data = []] = await (0, client_graphql_1.awaitTo)(ChatMessage_model_1.default.customQuery({
|
|
87
|
-
limit,
|
|
81
|
+
limit: limitPassed,
|
|
88
82
|
query,
|
|
89
83
|
params: copyParams,
|
|
90
84
|
}));
|
|
91
85
|
if (errorFetching) {
|
|
92
86
|
throw errorFetching;
|
|
93
87
|
}
|
|
94
|
-
const [rows = []
|
|
88
|
+
const [rows = []] = data;
|
|
89
|
+
const hasNext = rows.length > limit;
|
|
90
|
+
if (hasNext) {
|
|
91
|
+
rows.pop(); // remove last element
|
|
92
|
+
}
|
|
95
93
|
const dataToSend = rows.map((d) => {
|
|
96
94
|
const { chat, attachments, owner } = d;
|
|
97
95
|
return ChatMessage_model_1.default.parse(Object.assign(Object.assign({}, chat), { attachments, owner: owner[0] || null }));
|
|
98
96
|
});
|
|
99
|
-
return
|
|
97
|
+
return { items: dataToSend, params: copyParams, hasNext };
|
|
100
98
|
}
|
|
101
99
|
catch (error) {
|
|
102
100
|
(0, logs_1.log)('error getting chat messages', error);
|
|
@@ -109,11 +107,13 @@ let ChatMessageResolver = class ChatMessageResolver {
|
|
|
109
107
|
const createdOrUpdate = await (0, couchset_2.createUpdate)(Object.assign({ model: ChatMessage_model_1.default, data: Object.assign({}, args) }, args));
|
|
110
108
|
// Error when creating message
|
|
111
109
|
// update conversation with new lastMessage
|
|
110
|
+
// update message
|
|
112
111
|
if (createdOrUpdate) {
|
|
113
112
|
const topicId = ChatConvo_model_1.ChatConvo.name;
|
|
114
113
|
const message = createdOrUpdate.id;
|
|
115
114
|
const convoId = createdOrUpdate.convoId;
|
|
116
|
-
await (0, pubsub_utils_1.publishMessageToTopic)(ctx, topicId, { convoId, message });
|
|
115
|
+
await (0, pubsub_utils_1.publishMessageToTopic)(ctx, topicId, { convoId, message }); // update sockets
|
|
116
|
+
await (0, __1.updateConvoLastMessage)(convoId, message); // update all convos
|
|
117
117
|
return { success: true, data: createdOrUpdate };
|
|
118
118
|
}
|
|
119
119
|
throw new Error('error creating chat message method ');
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"ChatMessage.resolver.js","sourceRoot":"","sources":["../../../src/chat/resolvers/ChatMessage.resolver.ts"],"names":[],"mappings":"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"}
|