mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 13:02:56 +00:00
fix chat message not showing
This commit is contained in:
@@ -136,33 +136,7 @@ export class MessageService {
|
||||
|
||||
const params = {roomId:this.rid, msg:this.msg, localReference: this.localReference}
|
||||
|
||||
this.ChatMethodsService.send(params).subscribe(
|
||||
(response: any) => {
|
||||
const ChatMessage = response.message
|
||||
this.messageSend = true
|
||||
this.redefinedMessage(ChatMessage)
|
||||
|
||||
},
|
||||
(error) => {
|
||||
this.WsChatService.registerCallback({
|
||||
type: 'reConnect',
|
||||
funx: async ()=> {
|
||||
|
||||
this.WsChatService.send(params).then(({message, requestId}) => {
|
||||
let ChatMessage = message.result
|
||||
this.messageSend = true
|
||||
this.redefinedMessage(ChatMessage)
|
||||
|
||||
})
|
||||
|
||||
return true
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
await this.sendRequest(params)
|
||||
|
||||
} else {
|
||||
|
||||
@@ -182,31 +156,7 @@ export class MessageService {
|
||||
|
||||
|
||||
const params = {roomId:this.rid, msg: this.msg, attachments: this.attachments, file: this.file, localReference: this.localReference}
|
||||
this.ChatMethodsService.send(params).subscribe(
|
||||
(response: any) => {
|
||||
const ChatMessage = response.message
|
||||
this.messageSend = true
|
||||
this.redefinedMessage(ChatMessage)
|
||||
|
||||
},
|
||||
(error) => {
|
||||
|
||||
this.WsChatService.registerCallback({
|
||||
type: 'reConnect',
|
||||
funx: async ()=> {
|
||||
this.WsChatService.send(params).then(({message, requestId}) => {
|
||||
let ChatMessage = message.result
|
||||
this.messageSend = true
|
||||
this.redefinedMessage(ChatMessage)
|
||||
|
||||
})
|
||||
|
||||
return true
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
)
|
||||
await this.sendRequest(params)
|
||||
|
||||
|
||||
} else if(this.WsChatService.isLogin == false) {
|
||||
@@ -232,6 +182,32 @@ export class MessageService {
|
||||
|
||||
}
|
||||
|
||||
async sendRequest(params) {
|
||||
this.ChatMethodsService.send(params).subscribe(
|
||||
(response: any) => {
|
||||
const ChatMessage = response.message
|
||||
this.messageSend = true
|
||||
this.redefinedMessage(ChatMessage)
|
||||
|
||||
},
|
||||
(error) => {
|
||||
this.WsChatService.registerCallback({
|
||||
type: 'reConnect',
|
||||
funx: async ()=> {
|
||||
|
||||
this.WsChatService.send(params).then(({message, requestId}) => {
|
||||
let ChatMessage = message.result
|
||||
this.messageSend = true
|
||||
this.redefinedMessage(ChatMessage)
|
||||
|
||||
})
|
||||
return true
|
||||
}
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
async redefinedMessage(ChatMessage , update = true) {
|
||||
ChatMessage = this.NfService.fix_updatedAt(ChatMessage)
|
||||
|
||||
@@ -259,17 +235,7 @@ export class MessageService {
|
||||
return this.u.username != SessionStore.user.RochetChatUser
|
||||
}
|
||||
|
||||
async delete(allMemberThatIsNotOffline) {
|
||||
|
||||
|
||||
|
||||
DeleteMessageModel.create({
|
||||
messageId: this._id,
|
||||
rid: this.rid,
|
||||
ts: this.ts,
|
||||
u: this.u,
|
||||
receivedBy: allMemberThatIsNotOffline
|
||||
})
|
||||
async delete() {
|
||||
|
||||
const message = await MessageModel.get({_id: this._id})
|
||||
await message.delete()
|
||||
@@ -312,6 +278,7 @@ export class MessageService {
|
||||
|
||||
delete message.id
|
||||
const createdMessage = await MessageModel.create(message)
|
||||
console.log('done add to db')
|
||||
|
||||
this.id = createdMessage.id
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ import { NfService } from 'src/app/services/chat/nf.service';
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import { ChatStorageService } from './chat-storage.service'
|
||||
import { ChatMethodsService } from './chat-methods.service'
|
||||
import { MessageModel } from '../../models/beast-orm'
|
||||
import { DeleteMessageModel, MessageModel } from '../../models/beast-orm'
|
||||
import { AESEncrypt } from '../aesencrypt.service'
|
||||
import { IncomingChatMessage, ChatMessageInterface } from 'src/app/models/message.model';
|
||||
import { IncomingChatMessage, ChatMessageInterface, falseTypingMethod } from 'src/app/models/message.model';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -213,9 +213,11 @@ export class RoomService {
|
||||
this.isTyping = args[1]
|
||||
this.otherUserType = args[1]
|
||||
this.readAllMessage()
|
||||
} else {
|
||||
} else if(args[0]?.method == 'viewMessage') {
|
||||
|
||||
this.readAllMessage()
|
||||
} else if(args[0]?.method == 'deleteMessage') {
|
||||
//
|
||||
}
|
||||
|
||||
|
||||
@@ -275,7 +277,15 @@ export class RoomService {
|
||||
|
||||
this.messages.splice(index, 1)
|
||||
const allMemberThatIsNotOffline = this.getAllMemberThatIsNotOffline()
|
||||
message.delete(allMemberThatIsNotOffline)
|
||||
message.delete()
|
||||
|
||||
DeleteMessageModel.create({
|
||||
messageId: message._id,
|
||||
rid: message.rid,
|
||||
ts: message.ts,
|
||||
u: message.u,
|
||||
receivedBy: allMemberThatIsNotOffline
|
||||
})
|
||||
|
||||
//Get previous last message from room
|
||||
const previousLastMessage = this.messages.slice(-1)[0];
|
||||
@@ -289,6 +299,16 @@ export class RoomService {
|
||||
|
||||
}
|
||||
|
||||
async delateMessageToSend(userId) {
|
||||
|
||||
const deleteMessage = await DeleteMessageModel.all()
|
||||
|
||||
const toSend = deleteMessage.filter((DeleteMessage:string[])=> ! DeleteMessage.includes(userId))
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @description sen text message
|
||||
@@ -308,7 +328,9 @@ export class RoomService {
|
||||
|
||||
this.message= ''
|
||||
|
||||
const message: MessageService = await this.prepareMessage({message:offlineChatMessage, save: environment.chatOffline})
|
||||
const message: MessageService = await this.prepareCreate({message:offlineChatMessage, save: environment.chatOffline})
|
||||
|
||||
console.log(message, 'message')
|
||||
|
||||
this.messagesLocalReference.push(localReference)
|
||||
await message.addMessageDB()
|
||||
@@ -353,7 +375,7 @@ export class RoomService {
|
||||
}
|
||||
|
||||
sendFalseTypingReadMessage() {
|
||||
this.WsChatService.sendStreamNotifyRoom(this.id, SessionStore.user.RochetChatUser, 'typing', {})
|
||||
this.WsChatService.sendStreamNotifyRoom(this.id, SessionStore.user.RochetChatUser, 'typing', {method:'viewMessage'} as falseTypingMethod)
|
||||
this.setTypingOff()
|
||||
}
|
||||
|
||||
@@ -569,19 +591,25 @@ export class RoomService {
|
||||
* @param save
|
||||
* @returns
|
||||
*/
|
||||
async prepareCreate({message}): Promise<MessageService> {
|
||||
async prepareCreate({message, save = true}): Promise<MessageService> {
|
||||
message = this.fix_updatedAt(message)
|
||||
|
||||
const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt)
|
||||
wewMessage.setData(message)
|
||||
wewMessage.loadHistory = this.hasLoadHistory
|
||||
|
||||
if(!message?._id && environment.chatOffline) {
|
||||
console.log(message?._id, environment.chatOffline, save)
|
||||
|
||||
if(!message?._id && environment.chatOffline && save) {
|
||||
|
||||
this.messages.push(wewMessage)
|
||||
console.log('add to view')
|
||||
return wewMessage
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user