mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 21:06:06 +00:00
fix chat
This commit is contained in:
@@ -39,6 +39,7 @@ export class RoomBoldSyncUseCaseService {
|
||||
*/
|
||||
private listenToIncomingMessage() {
|
||||
return this.MessageSocketRepositoryService.listenToMessages().pipe(
|
||||
map(message => message.data),
|
||||
filter((message) => !message?.requestId?.startsWith(InstanceId)),
|
||||
map(message => Object.assign(new MessageEntity(), message)),
|
||||
filter((message) => !message.meSender())
|
||||
|
||||
@@ -9,6 +9,7 @@ import { RoomEntity } from 'src/app/core/chat/entity/group';
|
||||
import { RoomTable } from 'src/app/infra/database/dexie/instance/chat/schema/room';
|
||||
import { IMessageLocalRepository } from 'src/app/core/chat/repository/message/message-local-repository';
|
||||
import { messageListDetermineChanges } from '../../../data/async/list/rooms/messageListChangedetector';
|
||||
import { IDBoolean } from 'src/app/infra/database/dexie/type';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -80,9 +81,10 @@ export class RoomSetLastMessageService {
|
||||
}
|
||||
|
||||
private listenToIncomingMessage() {
|
||||
return this.messageSocketRepository.listenToMessages().pipe(
|
||||
map(message => Object.assign(new MessageEntity(), message))
|
||||
).subscribe(async (message) => {
|
||||
return this.messageSocketRepository.listenToMessages()
|
||||
.subscribe(async (e) => {
|
||||
|
||||
const message = Object.assign(new MessageEntity(), e.data)
|
||||
if(message?.roomId) {
|
||||
console.log('listenToIncomingMessage', message.roomId)
|
||||
|
||||
@@ -100,6 +102,18 @@ export class RoomSetLastMessageService {
|
||||
} else {
|
||||
console.log('set last message')
|
||||
}
|
||||
} else if (findRoom.isOk() && !findRoom.value && e.payload.receiverId) {
|
||||
// console.log('new room', e)
|
||||
const findLocalDirectRoom = await this.roomLocalRepository.findOne({
|
||||
receiverId: e.payload.receiverId
|
||||
})
|
||||
|
||||
if(findLocalDirectRoom.isOk() && findLocalDirectRoom.value) {
|
||||
findLocalDirectRoom.value.id = message.roomId
|
||||
findLocalDirectRoom.value.local = IDBoolean.false
|
||||
findLocalDirectRoom.value.messages = [message];
|
||||
await findLocalDirectRoom.value.save()
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user