diff --git a/src/app/core/chat/usecase/message/sync-all-room-messages.service.ts b/src/app/core/chat/usecase/message/sync-all-room-messages.service.ts index a6c565b44..2fc349e48 100644 --- a/src/app/core/chat/usecase/message/sync-all-room-messages.service.ts +++ b/src/app/core/chat/usecase/message/sync-all-room-messages.service.ts @@ -42,10 +42,10 @@ export class SyncAllRoomMessagesService { const removeLocalRooms = allRooms.value.filter((e)=> e.local != IDBoolean.true) const roomPromises = removeLocalRooms.map(async (room) => { - const lastMessage = room.messages.find(e => e.sentAt && e.id) + const lastMessage = room?.messages?.find(e => e.sentAt && e.id) const [result, localResult] = await Promise.all([ - this.messageRemoteDataSourceService.getMessagesFromRoom({roomId:room.id, lastMessageDate: lastMessage?.sentAt}), + this.messageRemoteDataSourceService.getMessagesFromRoom({roomId:room.id, lastMessageDate: lastMessage?.sentAt || null}), this.messageLocalDataSourceService.getItems(room.id) ]); diff --git a/src/app/module/chat/data/repository/message/message-remote-data-source.service.ts b/src/app/module/chat/data/repository/message/message-remote-data-source.service.ts index f46718d9b..715c0caa7 100644 --- a/src/app/module/chat/data/repository/message/message-remote-data-source.service.ts +++ b/src/app/module/chat/data/repository/message/message-remote-data-source.service.ts @@ -5,6 +5,9 @@ import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service'; import { HttpAdapter } from 'src/app/infra/http/adapter'; import { IMessageGetAllByRoomIdOutPut } from 'src/app/core/chat/usecase/message/message-get-all-by-room-Id'; import { IGetMessagesFromRoomParams, IMessageRemoteRepository } from 'src/app/core/chat/repository/message/message-remote-repository'; +import { HttpErrorResponse } from '@angular/common/http'; +import { Result } from 'neverthrow'; +import { HttpResult } from 'src/app/infra/http/type'; @Injectable({ providedIn: 'root' @@ -23,7 +26,13 @@ export class MessageRemoteDataSourceService implements IMessageRemoteRepository // @APIReturn(MessageOutPutDTOSchema, 'get/Messages') async getMessagesFromRoom(input: IGetMessagesFromRoomParams): DataSourceReturn { - var a = await this.http.get(`${this.baseUrl}/Room/${input.roomId}/Messages?startDate=${encodeURIComponent(input.lastMessageDate)}`) + let a: Result, HttpErrorResponse> + + if(input.lastMessageDate) { + a = await this.http.get(`${this.baseUrl}/Room/${input.roomId}/Messages?startDate=${encodeURIComponent(input.lastMessageDate)}`) + } else { + a = await this.http.get(`${this.baseUrl}/Room/${input.roomId}/Messages`) + } return a.map((e) => { return e.data diff --git a/src/app/ui/chat/chat.page.html b/src/app/ui/chat/chat.page.html index 0c9828044..acd0e5582 100644 --- a/src/app/ui/chat/chat.page.html +++ b/src/app/ui/chat/chat.page.html @@ -89,7 +89,7 @@ audio - {{ room.messages[0].attachments[0].description }} + {{ room.messages[0].attachments[0].description }}