mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 21:06:06 +00:00
fix login to socket
This commit is contained in:
@@ -25,6 +25,7 @@ import { SendLocalMessagesUseCaseService } from './use-case/messages-send-offlin
|
||||
import { RemoveMemberUseCaseService } from './use-case/member/-use-case.service'
|
||||
import { AddMemberUseCaseService } from './use-case/member-add-use-case.service'
|
||||
import { UpdateRoomByIdUseCaseService } from './use-case/room-update-by-id-use-case.service'
|
||||
import { SocketConnectUseCaseService } from './use-case/socket-connect-use-case.service'
|
||||
import { MessageMarkAsReadUseCaseService } from './use-case/message/message-mark-as-read-use-case.service'
|
||||
import { GetMessageAttachmentLocallyUseCaseService } from 'src/app/module/chat/domain/use-case/message-get-attachment-localy-use-case.service';
|
||||
import { GetRoomListUseCaseService } from 'src/app/module/chat/domain/use-case/room-get-list-use-case.service';
|
||||
@@ -76,7 +77,8 @@ export class ChatServiceService {
|
||||
private RemoveMemberUseCaseService: RemoveMemberUseCaseService,
|
||||
private MessageReadAtByIdUseCaseService: MessageReadAtByIdUseCaseService,
|
||||
private SendLocalMessagesUseCaseService: SendLocalMessagesUseCaseService,
|
||||
private MessageMarkAsReadUseCaseService: MessageMarkAsReadUseCaseService
|
||||
private MessageMarkAsReadUseCaseService: MessageMarkAsReadUseCaseService,
|
||||
private SocketConnectUseCaseService: SocketConnectUseCaseService
|
||||
) {
|
||||
this.messageLiveSignalRDataSourceService.getMessageDelete()
|
||||
.pipe()
|
||||
@@ -123,8 +125,14 @@ export class ChatServiceService {
|
||||
}
|
||||
|
||||
async start() {
|
||||
await this.chatSync()
|
||||
this.SocketConnectUseCaseService.execute();
|
||||
}
|
||||
|
||||
|
||||
async chatSync() {
|
||||
await this.getRoomList();
|
||||
this.asyncAllRoomMessage();
|
||||
await this.asyncAllRoomMessage();
|
||||
}
|
||||
|
||||
removeMemberToRoom(data: UserRemoveListInputDTO) {
|
||||
|
||||
@@ -14,10 +14,8 @@ export class ListenSendMessageUseCase {
|
||||
|
||||
execute({roomId}: {roomId: string}) {
|
||||
|
||||
console.log('reciee message')
|
||||
return this.MessageSocketRepositoryService.listenToMessages().pipe(
|
||||
filter((message) => {
|
||||
console.log(message, roomId)
|
||||
return message?.requestId?.startsWith(InstanceId) && message?.roomId == roomId
|
||||
}),
|
||||
map(message => message)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class SocketConnectUseCaseService {
|
||||
|
||||
constructor(
|
||||
private MessageSocketRepositoryService: MessageSocketRepositoryService
|
||||
) { }
|
||||
|
||||
execute() {
|
||||
return this.MessageSocketRepositoryService.connect()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import { ok } from 'neverthrow';
|
||||
import { RoomLocalRepository } from '../../data/repository/room-local-repository.service';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { Logger } from 'src/app/services/logger/main/service';
|
||||
import { XTracerAsync, TracingType } from 'src/app/services/monitoring/opentelemetry/tracer';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -21,20 +22,27 @@ export class SyncAllRoomMessagesService {
|
||||
private roomLocalDataSourceService: RoomLocalRepository,
|
||||
) { }
|
||||
|
||||
async execute() {
|
||||
@XTracerAsync({name:'SyncAllRoomMessagesService', module:'chat', bugPrint: true})
|
||||
async execute(tracing?: TracingType) {
|
||||
|
||||
const allRooms = await this.roomLocalDataSourceService.findAll()
|
||||
|
||||
if(allRooms.isOk()) {
|
||||
if(allRooms.value.length == 0) {
|
||||
console.log('no room to sync')
|
||||
tracing.addEvent('no need to sync')
|
||||
} else {
|
||||
console.log('sync '+ allRooms.value.length)
|
||||
tracing.addEvent('total sync '+ allRooms.value.length)
|
||||
}
|
||||
|
||||
let n =0
|
||||
for(const room of allRooms.value) {
|
||||
|
||||
const result = await this.messageRemoteDataSourceService.getMessagesFromRoom(room.id)
|
||||
const localResult = await this.messageLocalDataSourceService.getItems(room.id)
|
||||
|
||||
tracing.addEvent('async n '+ n)
|
||||
n++
|
||||
|
||||
if(result.isOk()) {
|
||||
|
||||
const { addedItems, changedItems, deletedItems } = messageListDetermineChanges(result.value.data, localResult)
|
||||
|
||||
Reference in New Issue
Block a user