From 6193aac4a8c11f508ec06d115ff8ce3c29a79414 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Fri, 30 Aug 2024 17:16:15 +0100 Subject: [PATCH] fix change --- src/app/core/chat/entity/group.ts | 1 - src/app/core/chat/repository/dto/messageOutputDTO.ts | 2 +- src/app/infra/socket/signalR/signal-r.service.ts | 5 +++-- src/app/infra/socket/signalR/signalR.ts | 9 ++++++--- .../message/message-live-signalr-data-source.service.ts | 3 --- src/app/module/chat/domain/service/room.service.ts | 2 +- .../domain/use-case/room/room-create-use-case.service.ts | 4 +++- src/app/ui/chat/chat.page.html | 2 +- src/app/ui/chat/chat.page.ts | 4 +--- src/app/ui/chat/component/new-group/new-group.page.ts | 2 ++ 10 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/app/core/chat/entity/group.ts b/src/app/core/chat/entity/group.ts index aaa599bd9..c6d9cc6cb 100644 --- a/src/app/core/chat/entity/group.ts +++ b/src/app/core/chat/entity/group.ts @@ -50,7 +50,6 @@ export class RoomEntity extends BaseEntity(RoomEntitySchema) implem roomType: typeof RoomEntitySchema._input.roomType members: typeof RoomEntitySchema._input.members messages: typeof RoomEntitySchema._input.messages - displayDate = '' constructor(data: IRoom) { super(); diff --git a/src/app/core/chat/repository/dto/messageOutputDTO.ts b/src/app/core/chat/repository/dto/messageOutputDTO.ts index b4a980e16..cbaa8b21d 100644 --- a/src/app/core/chat/repository/dto/messageOutputDTO.ts +++ b/src/app/core/chat/repository/dto/messageOutputDTO.ts @@ -19,7 +19,7 @@ export const MessageOutPutDataDTOSchema = z.object({ wxUserId: z.number(), wxFullName: z.string(), wxeMail: z.string(), - userPhoto: z.string().optional() + userPhoto: z.string().nullable().optional() }), message: z.string().nullable().optional(), messageType: z.number(), diff --git a/src/app/infra/socket/signalR/signal-r.service.ts b/src/app/infra/socket/signalR/signal-r.service.ts index ae9197bc5..ca03c6f7e 100644 --- a/src/app/infra/socket/signalR/signal-r.service.ts +++ b/src/app/infra/socket/signalR/signal-r.service.ts @@ -3,7 +3,7 @@ import { BehaviorSubject, Observable, Subject, timer } from 'rxjs'; import { Platform } from '@ionic/angular'; import { SignalRConnection, SocketMessage } from './signalR'; import { Plugins } from '@capacitor/core'; -import { filter, map, skip, switchMap } from 'rxjs/operators'; +import { switchMap } from 'rxjs/operators'; import { Result } from 'neverthrow'; import { HubConnection } from '@microsoft/signalr'; import { ISignalRInput } from '../type'; @@ -28,6 +28,7 @@ export class SignalRService { this.deadConnectionBackGround.pipe( switchMap(() => timer(150000)), // 2 minutes 30 seconds ).subscribe(() => { + console.log('trigger new connections') this.newConnection() }) @@ -58,7 +59,7 @@ export class SignalRService { const attempConnection = await connection.establishConnection() if(attempConnection.isOk()) { - + console.log('connect') this.connection?.closeConnection() this.connection = connection diff --git a/src/app/infra/socket/signalR/signalR.ts b/src/app/infra/socket/signalR/signalR.ts index 806592fd7..ace273838 100644 --- a/src/app/infra/socket/signalR/signalR.ts +++ b/src/app/infra/socket/signalR/signalR.ts @@ -20,7 +20,6 @@ export enum EnumSocketError { export class SignalRConnection { private hubConnection: signalR.HubConnection; - private messageSubject: BehaviorSubject = new BehaviorSubject(null); private connectionStateSubject: BehaviorSubject = new BehaviorSubject(false); private disconnectSubject: BehaviorSubject = new BehaviorSubject(false); private reconnectSubject: BehaviorSubject = new BehaviorSubject(false); @@ -127,7 +126,12 @@ export class SignalRConnection { this.hubConnection.invoke(input.method, input.data) this.sendDataSubject.pipe( - filter((message) => input.data.requestId == message?.data.requestId), + filter((message) => { + console.log(message) + return input.data.requestId == message?.data.requestId || + input.data.roomName == message?.data.roomName + + }), first() ).subscribe(value => { resolve(ok(value.data as unknown as T)) @@ -157,7 +161,6 @@ export class SignalRConnection { for(const method of methods) { this.hubConnection.on(method, (message: any) => { - this.messageSubject.next(message); this.sendDataSubject.next({ method: method, data: message diff --git a/src/app/module/chat/data/repository/message/message-live-signalr-data-source.service.ts b/src/app/module/chat/data/repository/message/message-live-signalr-data-source.service.ts index e83955d52..c798d5597 100644 --- a/src/app/module/chat/data/repository/message/message-live-signalr-data-source.service.ts +++ b/src/app/module/chat/data/repository/message/message-live-signalr-data-source.service.ts @@ -13,7 +13,6 @@ import { MessageMarkAsReadInput } from '../../../domain/use-case/message/message import { MessageOutPutDataDTO } from 'src/app/core/chat/repository/dto/messageOutputDTO'; import { MessageDeleteInputDTO } from '../../../domain/use-case/message/message-delete-by-id-live-use-case.service'; - interface sendDeliverAt { memberId: number, messageId:string, @@ -21,8 +20,6 @@ interface sendDeliverAt { requestId: string } - - @Injectable({ providedIn: 'root' }) diff --git a/src/app/module/chat/domain/service/room.service.ts b/src/app/module/chat/domain/service/room.service.ts index 3c9599987..27da9fdf1 100644 --- a/src/app/module/chat/domain/service/room.service.ts +++ b/src/app/module/chat/domain/service/room.service.ts @@ -22,7 +22,7 @@ export class RoomService { } OnDeleteCreateRoom() { - this.RoomSocketRepositoryService.listenToCreateRoom().subscribe((data)=> { + this.RoomSocketRepositoryService.listenToDeleteRoom().subscribe((data)=> { console.log('OnDeleteCreateRoom7', data) }) } diff --git a/src/app/module/chat/domain/use-case/room/room-create-use-case.service.ts b/src/app/module/chat/domain/use-case/room/room-create-use-case.service.ts index e6844cd99..37163c1a5 100644 --- a/src/app/module/chat/domain/use-case/room/room-create-use-case.service.ts +++ b/src/app/module/chat/domain/use-case/room/room-create-use-case.service.ts @@ -45,11 +45,13 @@ export class CreateRoomUseCaseService { async execute(data: CreateRoomInputDTO, tracing?: TracingType) { const result = await this.RoomSocketRepositoryService.CreateGroup(data) + + console.log('history', result) // const result = await this.roomRemoteDataSourceService.createRoom(data) if(result.isOk()) { - console.log(result.value) + console.log('create rooms',result.value) if(!result?.value?.createdBy) { let dataObject; diff --git a/src/app/ui/chat/chat.page.html b/src/app/ui/chat/chat.page.html index f5ce7fd39..93c0b4073 100644 --- a/src/app/ui/chat/chat.page.html +++ b/src/app/ui/chat/chat.page.html @@ -29,7 +29,7 @@ - + Conversas diff --git a/src/app/ui/chat/chat.page.ts b/src/app/ui/chat/chat.page.ts index 5f3a88d55..b50e27150 100644 --- a/src/app/ui/chat/chat.page.ts +++ b/src/app/ui/chat/chat.page.ts @@ -160,9 +160,7 @@ export class ChatPage implements OnInit { // this.setStatus('offline'); this.routerSubscription?.unsubscribe(); // Unsubscribe from the interval to prevent memory leaks - if (this.intervalSubscription) { - this.intervalSubscription.unsubscribe(); - } + this.intervalSubscription?.unsubscribe(); } diff --git a/src/app/ui/chat/component/new-group/new-group.page.ts b/src/app/ui/chat/component/new-group/new-group.page.ts index 88475a0b8..a6e174a51 100644 --- a/src/app/ui/chat/component/new-group/new-group.page.ts +++ b/src/app/ui/chat/component/new-group/new-group.page.ts @@ -131,6 +131,8 @@ export class NewGroupPage implements OnInit{ members: [] }) + console.log(result) + if(result.isOk()) { this.addGroupMessage.emit(result.value.id); } else if(result.error instanceof HttpErrorResponse) {