need to change branch

This commit is contained in:
Peter Maquiran
2022-03-15 15:49:59 +01:00
parent 616566bf77
commit 00cf4f7eaa
10 changed files with 138 additions and 37 deletions
+94 -14
View File
@@ -89,6 +89,9 @@ export class RoomService {
const membersIds = this.members.map((user)=> user._id)
if(membersIds.includes(userId)) {
this.deleteMessageToReceive(userId)
this.messages.forEach((message, index) => {
if(!message.messageOwnerById(userId)) {
@@ -207,6 +210,9 @@ export class RoomService {
if(message.fields.eventName == this.id+'/'+'typing') {
const args = message.fields.args
console.log(args)
if (typeof args[0] != 'object') {
this.userThatIsTyping = this.usernameToDisplayName(args[0])
console.log(this.userThatIsTyping, 'this.userThatIsTyping')
@@ -250,6 +256,48 @@ export class RoomService {
return AllMemberThatIsNotOffline
}
getAllMemberThatIsOffline(): string[] {
const membersIds = this.getRoomMembersIds()
const allChatUsers = this.getAllUsers()
const AllMemberThatIsNotOffline = []
for(let user of allChatUsers) {
if(membersIds.includes(user._id)) {
if(user.status == 'offline') {
AllMemberThatIsNotOffline.push(user._id)
}
}
}
return AllMemberThatIsNotOffline
}
async deleteMessageToReceive(userId) {
const allDeleteMessages = await DeleteMessageModel.all()
for(let message of allDeleteMessages) {
console.log('delete messages',message)
if(message.needToReceiveBy.includes(userId)) {
message.needToReceiveBy = message.needToReceiveBy.filter((e)=> e != userId)
this.sendFalseTypingReadMessage('deleteMessage',{_id:message.messageId})
console.log(message,'update::')
DeleteMessageModel.update(message)
}
}
}
async receiveMessageDelete() {
@@ -271,22 +319,25 @@ export class RoomService {
* @description delete message in the view
* @param id message ID
*/
deleteMessage(id) {
this.messages.forEach((message, index) => {
async deleteMessage(id) {
await this.messages.forEach(async(message, index) => {
if(message._id == id) {
this.messages.splice(index, 1)
const allMemberThatIsNotOffline = this.getAllMemberThatIsNotOffline()
message.delete()
const allMemberThatIsOffline = this.getAllMemberThatIsOffline()
message.deleteFromDB()
DeleteMessageModel.create({
await DeleteMessageModel.create({
messageId: message._id,
rid: message.rid,
ts: message.ts,
u: message.u,
receivedBy: allMemberThatIsNotOffline
needToReceiveBy: allMemberThatIsOffline
})
const DBmessage = await MessageModel.get({_id: message._id})
DBmessage.delete()
//Get previous last message from room
const previousLastMessage = this.messages.slice(-1)[0];
@@ -299,7 +350,7 @@ export class RoomService {
}
async delateMessageToSend(userId) {
async delateMessageToSendToOthers(userId) {
const deleteMessage = await DeleteMessageModel.all()
@@ -309,6 +360,31 @@ export class RoomService {
}
async sendDeleteRequest(msgId) {
const message = this.messages.find((e)=>e._id = msgId)
message.deleteFromDB()
this.ChatMethodsService.deleteMessage({_id:msgId, msgId:msgId, roomId:message.rid}).subscribe(
(response: any) => {
console.log(response)
message.delateRequest = true
message.save()
},
(error) => {
this.WsChatService.registerCallback({
type: 'reConnect',
funx: async ()=> {
this.sendDeleteRequest(msgId)
return true
}
})
}
)
}
/**
* @description sen text message
@@ -329,8 +405,6 @@ export class RoomService {
this.message= ''
const message: MessageService = await this.prepareCreate({message:offlineChatMessage, save: environment.chatOffline})
console.log(message, 'message')
this.messagesLocalReference.push(localReference)
await message.addMessageDB()
@@ -374,8 +448,8 @@ export class RoomService {
this.typingWatch()
}
sendFalseTypingReadMessage() {
this.WsChatService.sendStreamNotifyRoom(this.id, SessionStore.user.RochetChatUser, 'typing', {method:'viewMessage'} as falseTypingMethod)
sendFalseTypingReadMessage(method,param: object) {
this.WsChatService.sendStreamNotifyRoom(this.id, SessionStore.user.RochetChatUser, 'typing', {method:method, params: param} as falseTypingMethod)
this.setTypingOff()
}
@@ -434,8 +508,13 @@ export class RoomService {
if(wewMessage.offline == false) {
const message = await this.prepareMessageCreateIfNotExist({message:ChatMessage})
message?.decryptMessage()
} else if(wewMessage.delate && wewMessage.offline && !wewMessage.delateRequest) {
console.log('offline delete message')
wewMessage.deleteFromDB()
this.sendDeleteRequest(wewMessage._id)
} else {
const offlineMessage = await this.prepareMessageCreateIfNotExist({message:ChatMessage})
@@ -488,6 +567,8 @@ export class RoomService {
})
console.log('load chatHistory', chatHistory)
})
@@ -505,7 +586,6 @@ export class RoomService {
const membersIds = this.members.map((user)=> user._id)
console.log('read all ===========')
await this.messages.forEach( async (message, index) => {
if(message._id) {
@@ -670,7 +750,7 @@ export class RoomService {
sendReadMessage() {
this.WsChatService.readMessage(this.id)
this.sendFalseTypingReadMessage()
this.sendFalseTypingReadMessage('viewMessage', {})
}
}