diff --git a/src/app/pages/chat/chat.page.ts b/src/app/pages/chat/chat.page.ts index aec173f02..3df2c296a 100644 --- a/src/app/pages/chat/chat.page.ts +++ b/src/app/pages/chat/chat.page.ts @@ -167,6 +167,7 @@ export class ChatPage implements OnInit { ngOnInit() { this.items$ = this.RoomRepositoryService.getItemsLive() + this.RoomRepositoryService.list(); this.segment = "Contactos"; diff --git a/src/app/services/Repositorys/chat/data-source/room/room-remote-data-source.service.ts b/src/app/services/Repositorys/chat/data-source/room/room-remote-data-source.service.ts index 518bb3514..8c473a11f 100644 --- a/src/app/services/Repositorys/chat/data-source/room/room-remote-data-source.service.ts +++ b/src/app/services/Repositorys/chat/data-source/room/room-remote-data-source.service.ts @@ -23,8 +23,8 @@ export class RoomRemoteDataSourceService { return await this.httpService.post(`${this.baseUrl}/Room`, data); } - async getRoomList(): Promise> { - return await this.httpService.get(`${this.baseUrl}/Room`); + async getRoomList(): Promise> { + return await this.httpService.get(`${this.baseUrl}/Room`); } async getRoom(id: string): Promise> { diff --git a/src/app/services/Repositorys/chat/data-source/room/rooom-local-data-source.service.ts b/src/app/services/Repositorys/chat/data-source/room/rooom-local-data-source.service.ts index 9f08012a3..e16003763 100644 --- a/src/app/services/Repositorys/chat/data-source/room/rooom-local-data-source.service.ts +++ b/src/app/services/Repositorys/chat/data-source/room/rooom-local-data-source.service.ts @@ -28,6 +28,16 @@ roomDataSource.version(1).stores({ room: '++id, createdBy, roomName, roomType, expirationDate' }); + +interface CreateRoomParams { + id?: string; + roomName?: string; + createdBy?: any; + createdAt?: Date; + expirationDate?: Date; + roomType?: any; +} + @Injectable({ providedIn: 'root' }) @@ -38,10 +48,10 @@ export class RoomLocalDataSourceService { constructor() {} - async createRoom(data: RoomOutPutDTO) { + async createRoom(data: CreateRoomParams) { try { - const result = await roomDataSource.room.add(data.data) + const result = await roomDataSource.room.add(data) return ok(result) } catch (e) { return err(false) diff --git a/src/app/services/Repositorys/chat/dto/room/roomListOutputDTO.ts b/src/app/services/Repositorys/chat/dto/room/roomListOutputDTO.ts index a3733e46a..5406257ce 100644 --- a/src/app/services/Repositorys/chat/dto/room/roomListOutputDTO.ts +++ b/src/app/services/Repositorys/chat/dto/room/roomListOutputDTO.ts @@ -15,8 +15,15 @@ const RoomListItemOutPutDTOSchema = z.object({ expirationDate: z.string().datetime(), roomType: z.number() }); + + +// Define the schema for the entire response +const RoomListOutPutDTOSchema = z.object({ + success: z.boolean(), + message: z.string(), + data: z.array(RoomListItemOutPutDTOSchema), +}); + export type RoomListItemOutPutDTO = z.infer - -const RoomListOutPutDTOSchema = z.array(RoomListItemOutPutDTOSchema); export type RoomListOutPutDTO = z.infer diff --git a/src/app/services/Repositorys/chat/repository/room-repository.service.ts b/src/app/services/Repositorys/chat/repository/room-repository.service.ts index 416d40249..363bdd278 100644 --- a/src/app/services/Repositorys/chat/repository/room-repository.service.ts +++ b/src/app/services/Repositorys/chat/repository/room-repository.service.ts @@ -21,6 +21,12 @@ export class RoomRepositoryService { async list() { const result = await this.roomRemoteDataSourceService.getRoomList() + + if(result.isOk()) { + for( const roomData of result.value.data) { + this.roomLocalDataSourceService.createRoom(roomData as any) + } + } return result } @@ -35,7 +41,7 @@ export class RoomRepositoryService { console.log('result', result) this.roomMemoryDataSourceService.dispatch( addRoom(result.value) ) - this.roomLocalDataSourceService.createRoom(result.value) + this.roomLocalDataSourceService.createRoom(result.value.data) } return result diff --git a/src/app/shared/chat/new-group/new-group.page.ts b/src/app/shared/chat/new-group/new-group.page.ts index 7ea4afe40..a5fe412d4 100644 --- a/src/app/shared/chat/new-group/new-group.page.ts +++ b/src/app/shared/chat/new-group/new-group.page.ts @@ -183,7 +183,7 @@ export class NewGroupPage implements OnInit{ if(result.isOk()) { - this.addGroupMessage.emit(result); + // this.addGroupMessage.emit(result); } else if(result.error instanceof HttpErrorResponse) {