From bf6211229cb68d39a43b269612ff87947cde713c Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 15:22:24 +0100 Subject: [PATCH 01/30] fix --- src/app/pages/chat/chat.page.html | 8 ++++---- src/app/services/chat/room.service.ts | 2 +- src/app/services/chat/ws-chat-methods.service.ts | 5 ++++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/app/pages/chat/chat.page.html b/src/app/pages/chat/chat.page.html index d39bd652d..71a30bd9c 100644 --- a/src/app/pages/chat/chat.page.html +++ b/src/app/pages/chat/chat.page.html @@ -120,10 +120,10 @@
{{group.value.name.split('-').join(' ')}}
-
{{showDateDuration(group._updatedAt)}}
-
{{countDownDate(group.value.customFields.countDownDate, group.value.id)}}
+ -
+
diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 54fc6222d..f486a4fd2 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -63,7 +63,7 @@ export class RoomService { console.log('loadHistory', message) message.result.messages.reverse().forEach(element => { - console.log('element', element) + element = this.fix_updatedAt(element) const message = new MessageService() message.setData(element) diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 7b8ab1509..39ea53622 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -64,8 +64,11 @@ export class WsChatMethodsService { this.groupCount++ } - }); + + }); + + console.log('this.group', this.group) this.loadingWholeList = false } From b40b7c93602c8d699ad202593a3857cb945086c2 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 16:10:59 +0100 Subject: [PATCH 02/30] improve --- src/app/services/chat/room.service.ts | 5 ++++- src/app/services/chat/ws-chat.service.ts | 18 +++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index f486a4fd2..c595ead01 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -25,7 +25,6 @@ export class RoomService { ) {} setData({id, name, lastMessage, _updatedAt}) { - this.id = id this.name = name this.lastMessage = lastMessage @@ -93,4 +92,8 @@ export class RoomService { return message } + + // to add + countDownDate(){} + } diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 9d57d974f..6c018790b 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -46,7 +46,6 @@ export class WsChatService { return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ - console.log('message login', message) if(message.id == requestId ) { // same request send console.log('message login', message) @@ -303,18 +302,26 @@ export class WsChatService { this.ws.wsMsgQueue() }, wsMsgQueue:()=> { + let RunsQueue = [] + this.wsMsgQueue.forEach((item, index, object) => { if(item.loginRequired == true && this.isLogin == true) { console.log('run msgQueue ',index) this.ws.send(item.message, item.requestId, item.loginRequired); - delete this.wsMsgQueue[item.requestId] + RunsQueue.push(item.requestId) } else if(item.loginRequired == false) { console.log('run msgQueue ',index) this.ws.send(item.message, item.requestId, item.loginRequired); - delete this.wsMsgQueue[item.requestId] + RunsQueue.push(item.requestId) } }) + + RunsQueue.forEach((requestId)=>{ + this.wsMsgQueue = this.wsMsgQueue.filter(e=> e.requestId != requestId) + console.log('wsMsgQueue', this.wsMsgQueue) + }) + }, send: (message: object, requestId = uuidv4(), loginRequired) => { @@ -347,11 +354,12 @@ export class WsChatService { }, onclose:(event: any)=> { - + this.ws.connected = false + this.isLogin = false + this.connect() this.login() - this.ws.connected = false console.log(`[close] Connection closed cleanly, code=${event.code} reason=${event.reason}`); }, From 5ef112461da03adc730e8508534dad6030b070ff Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 16:14:33 +0100 Subject: [PATCH 03/30] improve reconnect --- src/app/services/chat/ws-chat.service.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 6c018790b..e876e1cde 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -47,10 +47,8 @@ export class WsChatService { return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ if(message.id == requestId ) { // same request send - console.log('message login', message) if(message.result.token) { - console.log('this.isLogin = true') this.isLogin = true this.ws.wsMsgQueue() @@ -317,9 +315,9 @@ export class WsChatService { }) + // remove wsMsgQueue RunsQueue.forEach((requestId)=>{ this.wsMsgQueue = this.wsMsgQueue.filter(e=> e.requestId != requestId) - console.log('wsMsgQueue', this.wsMsgQueue) }) }, @@ -337,7 +335,6 @@ export class WsChatService { onmessage:(event: any)=> { const data = JSON.parse(event.data) - // console.log('event.data', data) for (const [key, value] of Object.entries(this.wsCallbacks)) { if(value.type== 'Onmessage') { From 4b4b62a71eef714a0425748d9533aab6e6bb5e16 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 16:17:40 +0100 Subject: [PATCH 04/30] remove console.logs --- src/app/services/chat/ws-chat.service.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index e876e1cde..3a71da5a0 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -304,11 +304,11 @@ export class WsChatService { this.wsMsgQueue.forEach((item, index, object) => { if(item.loginRequired == true && this.isLogin == true) { - console.log('run msgQueue ',index) + // console.log('run msgQueue ',index) this.ws.send(item.message, item.requestId, item.loginRequired); RunsQueue.push(item.requestId) } else if(item.loginRequired == false) { - console.log('run msgQueue ',index) + // console.log('run msgQueue ',index) this.ws.send(item.message, item.requestId, item.loginRequired); RunsQueue.push(item.requestId) } @@ -324,7 +324,7 @@ export class WsChatService { send: (message: object, requestId = uuidv4(), loginRequired) => { if (this.ws.connected == false || loginRequired == true && this.isLogin == false) { // save data to send when back online - console.log('save msgQueue this.ws.connected == false || loginRequired == true && this.isLogin == false',this.ws.connected, loginRequired, this.isLogin) + // console.log('save msgQueue this.ws.connected == false || loginRequired == true && this.isLogin == false',this.ws.connected, loginRequired, this.isLogin) this.wsMsgQueue.push({message, requestId, loginRequired}) } else { let messageStr = JSON.stringify(message) From ddcd3f3e58eb42b77f1b8496ff05d2eeef0c087f Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 20:21:44 +0100 Subject: [PATCH 05/30] improve WsChatService --- src/app/models/rochet-chat-cliente-service.ts | 1 + src/app/services/chat/ws-chat.service.ts | 45 ++++++++++--------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/app/models/rochet-chat-cliente-service.ts b/src/app/models/rochet-chat-cliente-service.ts index 7cf5e2949..147ee54cb 100644 --- a/src/app/models/rochet-chat-cliente-service.ts +++ b/src/app/models/rochet-chat-cliente-service.ts @@ -3,6 +3,7 @@ export interface wsCallbacksParams { funx: Function runOnces?: boolean requestId?: string + key?: string } diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 3a71da5a0..48918ce1e 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -24,8 +24,18 @@ export class WsChatService { support: ["1"] } - this.ws.send(connectMessage, 'connect', false) - this.ws.send({msg:"pong"},'recoonect', false) + this.ws.send(connectMessage, 'connectMessage', false) + this.ws.send({msg:"pong"}, 'pong', false) + + this.ws.registerCallback({ + type:'Onmessage', + key: this.constructor.name+'ping/pong', + funx:(message: any) => { + if(message.msg == "ping") { + this.ws.send({msg:"pong"},'reconnect', false) + } + }}) + } login() { @@ -266,20 +276,21 @@ export class WsChatService { } // socket class ================================================================== - private socket!: WebSocket; - private wsUrl = '' - private wsMsgQueue : msgQueue[] = [] + private socket!: WebSocket; + private wsMsgQueue : {[key: string]: msgQueue} = {} private wsCallbacks: {[key: string]: wsCallbacksParams} = {} private ws = { connected: false, registerCallback:(params: wsCallbacksParams) => { - if(!params.requestId) { - params.requestId = uuidv4() + let id = params.requestId || params.key + + if(id) { + id = uuidv4() } - this.wsCallbacks[params.requestId] = { + this.wsCallbacks[id] = { type: params.type, funx: params.funx } @@ -302,30 +313,24 @@ export class WsChatService { wsMsgQueue:()=> { let RunsQueue = [] - this.wsMsgQueue.forEach((item, index, object) => { + for (const [key, item] of Object.entries(this.wsMsgQueue)) { + if(item.loginRequired == true && this.isLogin == true) { // console.log('run msgQueue ',index) this.ws.send(item.message, item.requestId, item.loginRequired); - RunsQueue.push(item.requestId) + delete this.wsMsgQueue[key] } else if(item.loginRequired == false) { // console.log('run msgQueue ',index) this.ws.send(item.message, item.requestId, item.loginRequired); - RunsQueue.push(item.requestId) + delete this.wsMsgQueue[key] } - - }) - - // remove wsMsgQueue - RunsQueue.forEach((requestId)=>{ - this.wsMsgQueue = this.wsMsgQueue.filter(e=> e.requestId != requestId) - }) - + } }, send: (message: object, requestId = uuidv4(), loginRequired) => { if (this.ws.connected == false || loginRequired == true && this.isLogin == false) { // save data to send when back online // console.log('save msgQueue this.ws.connected == false || loginRequired == true && this.isLogin == false',this.ws.connected, loginRequired, this.isLogin) - this.wsMsgQueue.push({message, requestId, loginRequired}) + this.wsMsgQueue[requestId] = {message, requestId, loginRequired} } else { let messageStr = JSON.stringify(message) this.socket.send(messageStr) From 4793328ff3a526bca4c6cfd7910966c340191690 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 21:12:39 +0100 Subject: [PATCH 06/30] make code cleaner --- src/app/services/chat/room.service.ts | 1 - src/app/services/chat/ws-chat.service.ts | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index c595ead01..5a1d6c6d2 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -36,7 +36,6 @@ export class RoomService { receiveMessage() { this.WsChatService.receiveLiveMessageFromRoom( this.id, - this.constructor.name+this.id, (Chatmessage) => { Chatmessage = this.fix_updatedAt(Chatmessage) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 48918ce1e..2149ebb8b 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -196,14 +196,13 @@ export class WsChatService { /** * @param roomId - * @param key * @param funx */ - receiveLiveMessageFromRoom(roomId =')(', key, funx: Function) { + receiveLiveMessageFromRoom(roomId, funx: Function) { this.ws.registerCallback({ type:'Onmessage', - requestId: key, + key: this.constructor.name+roomId, funx:(message)=>{ if(message.msg =='result') { if(message.result.msg) { From 2bd0cbf26f1592dabfdd6e4d542526172387515e Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 21:25:23 +0100 Subject: [PATCH 07/30] make code cleaner --- src/app/services/chat/ws-chat.service.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 2149ebb8b..31a6c8cf9 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -196,13 +196,14 @@ export class WsChatService { /** * @param roomId + * @param key * @param funx */ - receiveLiveMessageFromRoom(roomId, funx: Function) { + receiveLiveMessageFromRoom(roomId, funx: Function) { this.ws.registerCallback({ type:'Onmessage', - key: this.constructor.name+roomId, + key: this.constructor.name+'receiveLiveMessageFromRoom'+roomId, funx:(message)=>{ if(message.msg =='result') { if(message.result.msg) { From 4a80a9fd8c069a571a00b1fc3e947cfcd98f3551 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 21:29:06 +0100 Subject: [PATCH 08/30] make code cleaner --- src/app/services/chat/ws-chat.service.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 31a6c8cf9..6ece14506 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -203,7 +203,6 @@ export class WsChatService { this.ws.registerCallback({ type:'Onmessage', - key: this.constructor.name+'receiveLiveMessageFromRoom'+roomId, funx:(message)=>{ if(message.msg =='result') { if(message.result.msg) { From 8fbd4f0a259911a28ec42a72b7ba74dfacc05915 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 21:30:32 +0100 Subject: [PATCH 09/30] make code cleaner --- src/app/services/chat/ws-chat.service.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 6ece14506..09e68002f 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -294,6 +294,7 @@ export class WsChatService { funx: params.funx } + return id }, connect:()=> { this.socket = new WebSocket(environment.apiWsChatUrl); From 84be1d7e7723979b590ae33fa70d77c844137036 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 21:31:10 +0100 Subject: [PATCH 10/30] make code cleaner --- src/app/services/chat/ws-chat.service.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 09e68002f..3d1e10c2d 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -283,11 +283,7 @@ export class WsChatService { connected: false, registerCallback:(params: wsCallbacksParams) => { - let id = params.requestId || params.key - - if(id) { - id = uuidv4() - } + let id = params.requestId || params.key || uuidv4() this.wsCallbacks[id] = { type: params.type, From 5e8b0603ffc1475c90a140b3f1fe481b24ef32a7 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 21:42:45 +0100 Subject: [PATCH 11/30] make code cleaner --- src/app/services/chat/ws-chat.service.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 3d1e10c2d..f75987aeb 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -92,7 +92,7 @@ export class WsChatService { this.ws.send(request, requestId, true) return new Promise((resolve, reject) => { - this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ + this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ if(message.id == requestId) { // same request send resolve(message) return true @@ -157,7 +157,7 @@ export class WsChatService { this.ws.send(request, requestId, true) return new Promise((resolve, reject) => { - this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ + this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ // console.log(message) if(message.id == requestId ) { // same request send resolve(message) @@ -184,7 +184,7 @@ export class WsChatService { this.ws.send(subscribeRequest, requestId, true); return new Promise((resolve, reject) => { - this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ + this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ if(message.msg == 'ready' || deepFind(message, 'subs.0') == requestId) { // same request send resolve(message) return true @@ -233,7 +233,7 @@ export class WsChatService { this.ws.send(request, requestId, true); return new Promise((resolve, reject) => { - this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ + this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ if(message.msg == 'ready' || deepFind(message, 'subs.0') == requestId) { // same request send resolve(message) return true @@ -260,7 +260,7 @@ export class WsChatService { this.ws.send(streamNotifyObj, requestId, true) return new Promise((resolve, reject) => { - this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ + this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ if(message.id == requestId || deepFind(message,'result.id') == requestId) { // same request send resolve('') return true From ebe312d17b9a70d61f453ffebda5df6287bab012 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 21:43:53 +0100 Subject: [PATCH 12/30] make code cleaner --- src/app/services/chat/ws-chat.service.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index f75987aeb..b141a7d0c 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -34,7 +34,8 @@ export class WsChatService { if(message.msg == "ping") { this.ws.send({msg:"pong"},'reconnect', false) } - }}) + } + }) } From 87b03e3b4bcc00cc1c03f6b02a59e385eab8018c Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 21:46:08 +0100 Subject: [PATCH 13/30] make code cleaner --- src/app/services/chat/ws-chat.service.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index b141a7d0c..8e387912d 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -285,11 +285,7 @@ export class WsChatService { registerCallback:(params: wsCallbacksParams) => { let id = params.requestId || params.key || uuidv4() - - this.wsCallbacks[id] = { - type: params.type, - funx: params.funx - } + this.wsCallbacks[id] = params return id }, From 8287580a13fe6ed47a66ae3320b0d54fff3f7deb Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 22:07:55 +0100 Subject: [PATCH 14/30] make code cleaner --- src/app/models/rochet-chat-cliente-service.ts | 6 +++ src/app/services/chat/ws-chat.service.ts | 51 ++++++++++--------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/app/models/rochet-chat-cliente-service.ts b/src/app/models/rochet-chat-cliente-service.ts index 147ee54cb..697ab312f 100644 --- a/src/app/models/rochet-chat-cliente-service.ts +++ b/src/app/models/rochet-chat-cliente-service.ts @@ -11,4 +11,10 @@ export interface msgQueue { message: object, requestId: string, loginRequired: boolean +} + +export interface send { + message: object + requestId?: string + loginRequired: boolean } \ No newline at end of file diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 8e387912d..6d534afad 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { v4 as uuidv4 } from 'uuid' -import { wsCallbacksParams, msgQueue } from 'src/app/models/rochet-chat-cliente-service' +import { wsCallbacksParams, msgQueue, send } from 'src/app/models/rochet-chat-cliente-service' import { deepFind } from 'src/plugin/deep' import { environment } from 'src/environments/environment'; import { SessionStore } from 'src/app/store/session.service'; @@ -15,24 +15,24 @@ export class WsChatService { constructor() {} connect() { - + this.ws.connect(); - const connectMessage = { + const message = { msg: "connect", version: "1", support: ["1"] } - this.ws.send(connectMessage, 'connectMessage', false) - this.ws.send({msg:"pong"}, 'pong', false) + this.ws.send({message, loginRequired: false}) + this.ws.send({message:{msg:"pong"}, loginRequired: false}) this.ws.registerCallback({ type:'Onmessage', key: this.constructor.name+'ping/pong', funx:(message: any) => { if(message.msg == "ping") { - this.ws.send({msg:"pong"},'reconnect', false) + this.ws.send({message:{msg:"pong"}, loginRequired: false}) } } }) @@ -42,7 +42,7 @@ export class WsChatService { login() { const requestId = uuidv4() - const loginRequest = { + const message = { msg: "method", method: "login", id: requestId, @@ -53,7 +53,8 @@ export class WsChatService { } ] } - this.ws.send(loginRequest, requestId, false) + this.ws.send({message, requestId, loginRequired: false}) + return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ @@ -83,14 +84,14 @@ export class WsChatService { const requestId = uuidv4() - const request = { + const message = { "msg": "method", "method": "rooms/get", "id": requestId, "params": [ { "$date": 1480377601 } ] } - this.ws.send(request, requestId, true) + this.ws.send({message, requestId, loginRequired: true}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -104,22 +105,22 @@ export class WsChatService { logout() {} - send(roomId, message) { + send(roomId, msg) { const requestId = uuidv4() - var request = { + var message = { msg: "method", method: "sendMessage", id: requestId, params: [{ _id: uuidv4(), rid: roomId, - msg: message + msg: msg }] } - this.ws.send(request, requestId, true); + this.ws.send({message, requestId, loginRequired: true}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ @@ -141,7 +142,7 @@ export class WsChatService { const requestId = uuidv4() - const request = { + const message = { msg: "method", method: "loadHistory", id: requestId, @@ -155,7 +156,7 @@ export class WsChatService { ] } - this.ws.send(request, requestId, true) + this.ws.send({message, requestId, loginRequired: true}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -172,7 +173,7 @@ export class WsChatService { const requestId = uuidv4() - var subscribeRequest = { + var message = { "msg": "sub", "id": requestId, "name": "stream-notify-room", @@ -182,7 +183,7 @@ export class WsChatService { ] } - this.ws.send(subscribeRequest, requestId, true); + this.ws.send({message, requestId, loginRequired: true}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -221,7 +222,7 @@ export class WsChatService { const requestId = uuidv4() - const request = { + const message = { "msg": "sub", "id": requestId, "name": "stream-room-messages", @@ -231,7 +232,7 @@ export class WsChatService { ] } - this.ws.send(request, requestId, true); + this.ws.send({message, requestId, loginRequired: true}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -247,7 +248,7 @@ export class WsChatService { const requestId = uuidv4() - let streamNotifyObj = { + let message = { "msg": "method", "method": "stream-notify-room", "id": requestId, @@ -258,7 +259,7 @@ export class WsChatService { ] }; - this.ws.send(streamNotifyObj, requestId, true) + this.ws.send({message, requestId, loginRequired: true}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -310,16 +311,16 @@ export class WsChatService { if(item.loginRequired == true && this.isLogin == true) { // console.log('run msgQueue ',index) - this.ws.send(item.message, item.requestId, item.loginRequired); + this.ws.send(item); delete this.wsMsgQueue[key] } else if(item.loginRequired == false) { // console.log('run msgQueue ',index) - this.ws.send(item.message, item.requestId, item.loginRequired); + this.ws.send(item); delete this.wsMsgQueue[key] } } }, - send: (message: object, requestId = uuidv4(), loginRequired) => { + send: ({message, requestId = uuidv4(), loginRequired = false}:send) => { if (this.ws.connected == false || loginRequired == true && this.isLogin == false) { // save data to send when back online // console.log('save msgQueue this.ws.connected == false || loginRequired == true && this.isLogin == false',this.ws.connected, loginRequired, this.isLogin) From f0e9125e4dbd9aa551596ed2ba73f56f9c79eb17 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 22:10:42 +0100 Subject: [PATCH 15/30] make code cleaner --- src/app/models/rochet-chat-cliente-service.ts | 2 +- src/app/services/chat/ws-chat.service.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/app/models/rochet-chat-cliente-service.ts b/src/app/models/rochet-chat-cliente-service.ts index 697ab312f..36b10321b 100644 --- a/src/app/models/rochet-chat-cliente-service.ts +++ b/src/app/models/rochet-chat-cliente-service.ts @@ -16,5 +16,5 @@ export interface msgQueue { export interface send { message: object requestId?: string - loginRequired: boolean + loginRequired?: boolean } \ No newline at end of file diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 6d534afad..3606e1f60 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -91,7 +91,7 @@ export class WsChatService { "params": [ { "$date": 1480377601 } ] } - this.ws.send({message, requestId, loginRequired: true}) + this.ws.send({message, requestId}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -120,7 +120,7 @@ export class WsChatService { }] } - this.ws.send({message, requestId, loginRequired: true}); + this.ws.send({message, requestId}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ @@ -156,7 +156,7 @@ export class WsChatService { ] } - this.ws.send({message, requestId, loginRequired: true}) + this.ws.send({message, requestId}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -183,7 +183,7 @@ export class WsChatService { ] } - this.ws.send({message, requestId, loginRequired: true}); + this.ws.send({message, requestId}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -232,7 +232,7 @@ export class WsChatService { ] } - this.ws.send({message, requestId, loginRequired: true}); + this.ws.send({message, requestId}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -259,7 +259,7 @@ export class WsChatService { ] }; - this.ws.send({message, requestId, loginRequired: true}) + this.ws.send({message, requestId}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -320,7 +320,7 @@ export class WsChatService { } } }, - send: ({message, requestId = uuidv4(), loginRequired = false}:send) => { + send: ({message, requestId = uuidv4(), loginRequired = true}:send) => { if (this.ws.connected == false || loginRequired == true && this.isLogin == false) { // save data to send when back online // console.log('save msgQueue this.ws.connected == false || loginRequired == true && this.isLogin == false',this.ws.connected, loginRequired, this.isLogin) From 7a09fb5a92dccdca13c8882f0020f20ef00387b9 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 12 Jan 2022 22:11:54 +0100 Subject: [PATCH 16/30] make code cleaner --- src/app/services/chat/ws-chat.service.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 3606e1f60..5434a5a5e 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -305,7 +305,6 @@ export class WsChatService { this.ws.wsMsgQueue() }, wsMsgQueue:()=> { - let RunsQueue = [] for (const [key, item] of Object.entries(this.wsMsgQueue)) { From 5c18d20afb61d9ed6f86b26ac267e566924196fb Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 07:29:28 +0100 Subject: [PATCH 17/30] remove requestId --- src/app/services/chat/ws-chat.service.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 5434a5a5e..0c6d3b516 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -57,7 +57,7 @@ export class WsChatService { return new Promise((resolve, reject) => { - this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ + this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ if(message.id == requestId ) { // same request send if(message.result.token) { @@ -123,7 +123,7 @@ export class WsChatService { this.ws.send({message, requestId}); return new Promise((resolve, reject) => { - this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ + this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ if(message.id == requestId || deepFind(message,'result.id') == requestId) { // same request send resolve(message) return true From 361e60a79721f6af5af5dc91be87d32a32e4fc5d Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 07:57:50 +0100 Subject: [PATCH 18/30] add commnet --- src/app/services/chat/ws-chat.service.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 0c6d3b516..ef0f5b2cc 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -104,7 +104,8 @@ export class WsChatService { } logout() {} - + + // send message to room send(roomId, msg) { const requestId = uuidv4() From 9bb95164917e4bc90e756a4dc867d55eb0b5b633 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 10:19:14 +0100 Subject: [PATCH 19/30] add message notification --- src/app/services/chat/room.service.ts | 5 ++++- src/app/services/toast.service.ts | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 5a1d6c6d2..4460386f4 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -3,6 +3,8 @@ import { WsChatService } from 'src/app/services/chat/ws-chat.service'; import { MessageService } from 'src/app/services/chat/message.service' import { ChatUserService } from 'src/app/services/chat/chat-user.service' import { showDateDuration } from 'src/plugin/showDateDuration' +import { ToastsService } from '../toast.service'; + @Injectable({ providedIn: 'root' }) @@ -18,6 +20,7 @@ export class RoomService { private hasLoadHistory = false duration = '' + ToastService = ToastsService constructor( public WsChatService: WsChatService, @@ -43,7 +46,7 @@ export class RoomService { message.setData(Chatmessage.result) this.massages.push(message) this.calDateDuration(Chatmessage.result._updatedAt) - + this.ToastService.presentToast('nova mensagem') } ) } diff --git a/src/app/services/toast.service.ts b/src/app/services/toast.service.ts index 840678e37..352bd86a3 100644 --- a/src/app/services/toast.service.ts +++ b/src/app/services/toast.service.ts @@ -10,9 +10,7 @@ export class ToastService { constructor( public toastController: ToastController, - private animationController: AnimationController, - private modalController: ModalController, - ) { } + ) { } ngOnInit() {} @@ -230,3 +228,6 @@ export class ToastService { } } + + +export const ToastsService = new ToastService(new ToastController()) \ No newline at end of file From 8386781f77db95cd1aaa5591f9a2bf1e9d60cc43 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 10:26:40 +0100 Subject: [PATCH 20/30] add private atribuite --- src/app/services/chat/room.service.ts | 2 +- src/app/shared/chat/messages/messages.page.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 4460386f4..210147e20 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -20,7 +20,7 @@ export class RoomService { private hasLoadHistory = false duration = '' - ToastService = ToastsService + private ToastService = ToastsService constructor( public WsChatService: WsChatService, diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 218e648ec..7079eb39e 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -133,7 +133,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy ev.target.complete(); } - scrollToBottom(): void { + scrollToBottom = () => { try { if(this.scrollingOnce){ this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight; From 3565d5ceb2ebc856a0337e324867686127cb8e46 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 10:52:03 +0100 Subject: [PATCH 21/30] improve message service --- src/app/models/chatMethod.ts | 101 +++++++++++++++++++++++ src/app/services/chat/message.service.ts | 11 ++- src/app/services/chat/room.service.ts | 24 +++--- 3 files changed, 120 insertions(+), 16 deletions(-) create mode 100644 src/app/models/chatMethod.ts diff --git a/src/app/models/chatMethod.ts b/src/app/models/chatMethod.ts new file mode 100644 index 000000000..122e3ff01 --- /dev/null +++ b/src/app/models/chatMethod.ts @@ -0,0 +1,101 @@ +export interface Ts { + $date: any; +} + +export interface U { + _id: string; + username: string; + name: string; +} + +interface UpdatedAt { + $date: any; +} + +interface Attachment { + ts: Date; + title_link_download: boolean; +} + +export interface File { + type: string; + guid: string; + image_url: string; + subject: string; + start_date?: Date; + end_date?: Date; + venue: string; + id: string; +} + +interface EditedAt { + $date: number; +} + +interface EditedBy { + _id: string; + username: string; +} + + + +interface Ts2 { + $date: number; +} + +interface U2 { + _id: string; + username: string; + name: string; +} + +interface UpdatedAt2 { + $date: number; +} + +interface FirstUnread { + _id: string; + rid: string; + msg: string; + ts: Ts2; + u: U2; + _updatedAt: UpdatedAt2; + mentions: any[]; + channels: any[]; +} + +export interface Message { + _id: string; + rid: string; + msg: string; + ts: Ts; + u: U; + _updatedAt: UpdatedAt; + mentions: any[]; + channels: any[]; + attachments: Attachment[]; + file: File; + editedAt: EditedAt; + editedBy: EditedBy; + urls: any[]; +} + +export interface ChatMessage { + msg: string; + id: string; + result: Message +} + + + + + +export interface chatHistory { + msg: string; + id: string; + result: { + messages: Message[]; + firstUnread: FirstUnread; + unreadNotLoaded: number; + }; +} diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index cf1b39a98..ffdf4c9cf 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -1,4 +1,6 @@ import { Injectable } from '@angular/core'; +import { Message } from 'src/app/models/chatMethod'; +import { chatHistory, ChatMessage, File } from 'src/app/models/chatMethod' @Injectable({ providedIn: 'root' @@ -13,10 +15,12 @@ export class MessageService { u = {} _id ='' _updatedAt = {} + file + attachments constructor() { } - setData({channels, mentions, msg ,rid ,ts, u, _id, _updatedAt}) { + setData({channels, mentions, msg ,rid ,ts, u, _id, _updatedAt, file, attachments}:Message) { this.channels = channels this.mentions = mentions this.msg = msg @@ -25,13 +29,12 @@ export class MessageService { this.u = u this._id = _id this._updatedAt = _updatedAt + this.file = file + this.attachments = attachments } delete() {} showDateDuration() {} - - - } diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 210147e20..7c5299e45 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -4,7 +4,7 @@ import { MessageService } from 'src/app/services/chat/message.service' import { ChatUserService } from 'src/app/services/chat/chat-user.service' import { showDateDuration } from 'src/plugin/showDateDuration' import { ToastsService } from '../toast.service'; - +import { chatHistory, ChatMessage } from 'src/app/models/chatMethod' @Injectable({ providedIn: 'root' }) @@ -39,13 +39,13 @@ export class RoomService { receiveMessage() { this.WsChatService.receiveLiveMessageFromRoom( this.id, - (Chatmessage) => { + (ChatMessage:ChatMessage) => { - Chatmessage = this.fix_updatedAt(Chatmessage) + ChatMessage = this.fix_updatedAt(ChatMessage) const message = new MessageService() - message.setData(Chatmessage.result) + message.setData(ChatMessage.result) this.massages.push(message) - this.calDateDuration(Chatmessage.result._updatedAt) + this.calDateDuration(ChatMessage.result._updatedAt) this.ToastService.presentToast('nova mensagem') } ) @@ -60,15 +60,15 @@ export class RoomService { if(this.hasLoadHistory){ return false} - this.WsChatService.loadHistory(this.id, limit).then((message:any) => { - console.log('loadHistory', message) + this.WsChatService.loadHistory(this.id, limit).then((chatHistory:chatHistory) => { + console.log('loadHistory', chatHistory) - message.result.messages.reverse().forEach(element => { + chatHistory.result.messages.reverse().forEach(message => { - element = this.fix_updatedAt(element) - const message = new MessageService() - message.setData(element) - this.massages.push(message) + message = this.fix_updatedAt(message) + const wewMessage = new MessageService() + wewMessage.setData(message) + this.massages.push(wewMessage) }); }) From 0f3f0e60df980ee6db28234ac114f71e5581757e Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 10:55:40 +0100 Subject: [PATCH 22/30] remove delete useless methods --- src/app/models/chatMethod.ts | 4 ++-- src/app/services/chat/room.service.ts | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/app/models/chatMethod.ts b/src/app/models/chatMethod.ts index 122e3ff01..0cd7ea347 100644 --- a/src/app/models/chatMethod.ts +++ b/src/app/models/chatMethod.ts @@ -1,8 +1,8 @@ -export interface Ts { +interface Ts { $date: any; } -export interface U { +interface U { _id: string; username: string; name: string; diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 7c5299e45..b33b0d36c 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -76,8 +76,6 @@ export class RoomService { this.hasLoadHistory = true } - create() {} - deleteMessage(msgId) {} ReactToMessage() {} private calDateDuration(date = null) { From 63c7ff027cdf1bc5863618799da8b0f7a3686a05 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 11:24:14 +0100 Subject: [PATCH 23/30] set user status --- src/app/services/auth.service.ts | 2 ++ src/app/services/chat/ws-chat.service.ts | 26 +++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index df4d6b36e..e4b0d96da 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -42,6 +42,7 @@ export class AuthService { this.WsChatService.connect(); this.WsChatService.login().then((message) => { console.log('rocket chat login successfully', message) + this.WsChatService.temporaryStatus('online') }).catch((message)=>{ console.log('rocket chat login failed', message) }) @@ -115,6 +116,7 @@ export class AuthService { this.WsChatService.connect(); this.WsChatService.login().then((message) => { console.log('rocket chat login successfully', message) + this.WsChatService.temporaryStatus('online') }).catch((message)=>{ console.log('rocket chat login failed', message) }) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index ef0f5b2cc..32b43e55e 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -170,6 +170,23 @@ export class WsChatService { }); } + temporaryStatus(status: 'online' | 'busy' | 'away' | 'offline') { + + const requestId = uuidv4() + + const message = { + + msg: "method", + method: `UserPresence:setDefaultStatus`, + id: requestId, + params: [ status ] + + } + + this.ws.send({message, requestId}) + + } + subscribeNotifyRoom(roomId : string) { const requestId = uuidv4() @@ -208,9 +225,12 @@ export class WsChatService { type:'Onmessage', funx:(message)=>{ if(message.msg =='result') { - if(message.result.msg) { - if(message.result.rid == roomId) { - funx(message) + console.log(message) + if(message.result) { + if(message.result.msg) { + if(message.result.rid == roomId) { + funx(message) + } } } } From ffcde989676b2c704ec71a80cbcde451a5cdae9c Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 11:32:32 +0100 Subject: [PATCH 24/30] improve login --- src/app/services/chat/ws-chat.service.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 32b43e55e..b177ad975 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -225,7 +225,6 @@ export class WsChatService { type:'Onmessage', funx:(message)=>{ if(message.msg =='result') { - console.log(message) if(message.result) { if(message.result.msg) { if(message.result.rid == roomId) { From cf98e99531bd5fd670aff03d02d42cdeb6baf575 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 11:43:36 +0100 Subject: [PATCH 25/30] fix dm room name --- src/app/services/chat/ws-chat-methods.service.ts | 4 ++-- src/index.html | 9 +++++++++ src/plugin/deep.js | 2 +- src/plugin/text.js | 7 +++++++ 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 src/plugin/text.js diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 39ea53622..02ddbdb9a 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -3,7 +3,7 @@ import { RoomService } from './room.service'; import { WsChatService } from 'src/app/services/chat/ws-chat.service'; import { MessageService } from 'src/app/services/chat/message.service' import { SessionStore } from 'src/app/store/session.service'; - +import { capitalizeTxt } from 'src/plugin/text' @Injectable({ providedIn: 'root' @@ -101,7 +101,7 @@ export class WsChatMethodsService { return name != SessionStore.user.RochetChatUser })[0] - return roomName + return capitalizeTxt(roomName.split('.')[0]) + ' ' + capitalizeTxt(roomName.split('.')[1]) } else { return roomData.fname } diff --git a/src/index.html b/src/index.html index 2d125ea04..63e7662dc 100644 --- a/src/index.html +++ b/src/index.html @@ -66,6 +66,15 @@ + + diff --git a/src/plugin/deep.js b/src/plugin/deep.js index 586c8077c..312724756 100644 --- a/src/plugin/deep.js +++ b/src/plugin/deep.js @@ -14,5 +14,5 @@ function deepFind(obj, path) { } module.exports = { - deepFind: deepFind, + deepFind: deepFind, }; \ No newline at end of file diff --git a/src/plugin/text.js b/src/plugin/text.js new file mode 100644 index 000000000..c453d310b --- /dev/null +++ b/src/plugin/text.js @@ -0,0 +1,7 @@ +function capitalizeTxt(txt) { + return txt.charAt(0).toUpperCase() + txt.slice(1); //or if you want lowercase the rest txt.slice(1).toLowerCase(); +} + +module.exports = { + capitalizeTxt: capitalizeTxt +} \ No newline at end of file From 364108ab44dbdb3e898637766003291b2cc84769 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 11:55:21 +0100 Subject: [PATCH 26/30] fix room name and add interface --- src/app/models/chatMethod.ts | 66 +++++++++++++++++++ .../services/chat/ws-chat-methods.service.ts | 7 +- src/plugin/text.js | 2 +- 3 files changed, 71 insertions(+), 4 deletions(-) diff --git a/src/app/models/chatMethod.ts b/src/app/models/chatMethod.ts index 0cd7ea347..c813eb88d 100644 --- a/src/app/models/chatMethod.ts +++ b/src/app/models/chatMethod.ts @@ -80,6 +80,72 @@ export interface Message { urls: any[]; } + + + +export interface Lm { + $date: any; +} + + + + +export interface LastMessage { + _id: string; + rid: string; + msg: string; + ts: Ts; + u: U; + _updatedAt: UpdatedAt2; + mentions: any[]; + channels: any[]; + file: File; + attachments: Attachment[]; +} + +export interface CustomFields { +} + +export interface Update { + _id: string; + t: string; + usernames: string[]; + usersCount: number; + uids: string[]; + default: boolean; + ro: boolean; + sysMes: boolean; + _updatedAt: UpdatedAt; + lm: Lm; + lastMessage: LastMessage; + name: string; + fname: string; + u: U2; + customFields: CustomFields; +} + +export interface DeletedAt { + $date: any; +} + +export interface Remove { + _id: string; + _deletedAt: DeletedAt; +} + +export interface Result { + update: Update[]; + remove: Remove[]; +} + +export interface Rooms { + msg: string; + id: string; + result: Result; +} + + + export interface ChatMessage { msg: string; id: string; diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 02ddbdb9a..70c5faf51 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -4,6 +4,7 @@ import { WsChatService } from 'src/app/services/chat/ws-chat.service'; import { MessageService } from 'src/app/services/chat/message.service' import { SessionStore } from 'src/app/store/session.service'; import { capitalizeTxt } from 'src/plugin/text' +import { Rooms, Update } from 'src/app/models/chatMethod'; @Injectable({ providedIn: 'root' @@ -35,10 +36,10 @@ export class WsChatMethodsService { this.loadingWholeList = true const rooms: any = await this.WsChatService.getRooms(); + + console.log("ROOMS" + JSON.stringify(rooms)) - console.log("ROOMS" + rooms) - - rooms.result.update.forEach((roomData:any) => { + rooms.result.update.forEach((roomData:Update) => { let room:RoomService; console.log(roomData); diff --git a/src/plugin/text.js b/src/plugin/text.js index c453d310b..4d25cc846 100644 --- a/src/plugin/text.js +++ b/src/plugin/text.js @@ -3,5 +3,5 @@ function capitalizeTxt(txt) { } module.exports = { - capitalizeTxt: capitalizeTxt + capitalizeTxt: capitalizeTxt } \ No newline at end of file From e67175ac6fca4c71114372e687899b9eb9768ba3 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 12:01:56 +0100 Subject: [PATCH 27/30] make code cleaner --- src/app/services/chat/ws-chat-methods.service.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 70c5faf51..8e61b9065 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -102,7 +102,9 @@ export class WsChatMethodsService { return name != SessionStore.user.RochetChatUser })[0] - return capitalizeTxt(roomName.split('.')[0]) + ' ' + capitalizeTxt(roomName.split('.')[1]) + const firstName = capitalizeTxt(roomName.split('.')[0]) + const lastName = capitalizeTxt(roomName.split('.')[1]) + return firstName + ' ' + lastName } else { return roomData.fname } From ca2c5abe519ad13fae95f5cebdc3d38bc374b5ba Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 12:04:33 +0100 Subject: [PATCH 28/30] add room interface --- src/app/services/chat/ws-chat-methods.service.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 8e61b9065..0b2305848 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -4,7 +4,7 @@ import { WsChatService } from 'src/app/services/chat/ws-chat.service'; import { MessageService } from 'src/app/services/chat/message.service' import { SessionStore } from 'src/app/store/session.service'; import { capitalizeTxt } from 'src/plugin/text' -import { Rooms, Update } from 'src/app/models/chatMethod'; +import { Rooms, Update as room } from 'src/app/models/chatMethod'; @Injectable({ providedIn: 'root' @@ -39,7 +39,7 @@ export class WsChatMethodsService { console.log("ROOMS" + JSON.stringify(rooms)) - rooms.result.update.forEach((roomData:Update) => { + rooms.result.update.forEach((roomData: room) => { let room:RoomService; console.log(roomData); @@ -95,7 +95,7 @@ export class WsChatMethodsService { } } - getRoomName(roomData) { + getRoomName(roomData: room) { if(this.isIndividual(roomData)) { const names: String[] = roomData.usernames const roomName = names.filter((name)=>{ @@ -110,15 +110,15 @@ export class WsChatMethodsService { } } - getRoomId(roomData) { + getRoomId(roomData:room) { return roomData.lastMessage.rid } - getRoomLastMessage(roomData) { + getRoomLastMessage(roomData: room) { return roomData.lastMessage } - private isIndividual(roomData) { + private isIndividual(roomData: room) { return !roomData.fname } From 0b1add3fb7f5206c332130d37363394c724c88ea Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 12:52:05 +0100 Subject: [PATCH 29/30] remove console.log --- src/app/services/chat/ws-chat-methods.service.ts | 4 ++-- src/app/services/chat/ws-chat.service.ts | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 0b2305848..89591ea77 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -35,9 +35,9 @@ export class WsChatMethodsService { async getAllRooms () { this.loadingWholeList = true - const rooms: any = await this.WsChatService.getRooms(); + const rooms = await this.WsChatService.getRooms(); - console.log("ROOMS" + JSON.stringify(rooms)) + // console.log("ROOMS" + JSON.stringify(rooms)) rooms.result.update.forEach((roomData: room) => { let room:RoomService; diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index b177ad975..8b9a7c881 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -4,6 +4,7 @@ import { wsCallbacksParams, msgQueue, send } from 'src/app/models/rochet-chat-cl import { deepFind } from 'src/plugin/deep' import { environment } from 'src/environments/environment'; import { SessionStore } from 'src/app/store/session.service'; +import { chatHistory, Rooms } from 'src/app/models/chatMethod'; @Injectable({ providedIn: 'root' @@ -93,7 +94,7 @@ export class WsChatService { this.ws.send({message, requestId}) - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ if(message.id == requestId) { // same request send resolve(message) @@ -103,7 +104,10 @@ export class WsChatService { }); } - logout() {} + logout() { + this.isLogin = false + this.ws.connected = false + } // send message to room send(roomId, msg) { @@ -159,7 +163,7 @@ export class WsChatService { this.ws.send({message, requestId}) - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ // console.log(message) if(message.id == requestId ) { // same request send @@ -352,6 +356,7 @@ export class WsChatService { }, onmessage:(event: any)=> { + if(this.ws.connected == false) { return true } const data = JSON.parse(event.data) for (const [key, value] of Object.entries(this.wsCallbacks)) { From 6d3b972e7541842e28a48da70f8e7d010cc3c88c Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 13 Jan 2022 12:52:49 +0100 Subject: [PATCH 30/30] fix --- src/app/services/chat/ws-chat.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 8b9a7c881..22b7ea55e 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -356,7 +356,7 @@ export class WsChatService { }, onmessage:(event: any)=> { - if(this.ws.connected == false) { return true } + // if(this.ws.connected == false) { return true } const data = JSON.parse(event.data) for (const [key, value] of Object.entries(this.wsCallbacks)) {