fix login to socket

This commit is contained in:
Peter Maquiran
2024-08-21 10:40:54 +01:00
parent 59fc19879f
commit d76f2e240e
13 changed files with 86 additions and 21 deletions
@@ -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)