diff --git a/src/app/services/Repositorys/chat/data-source/message/message-local-data-source.service.ts b/src/app/services/Repositorys/chat/data-source/message/message-local-data-source.service.ts index 18c3317c6..1743816c8 100644 --- a/src/app/services/Repositorys/chat/data-source/message/message-local-data-source.service.ts +++ b/src/app/services/Repositorys/chat/data-source/message/message-local-data-source.service.ts @@ -1,13 +1,8 @@ import { Injectable } from '@angular/core'; -import { AddMemberToRoomInputDTO } from '../../dto/room/addMemberToRoomInputDto'; -import { RoomListOutPutDTO } from '../../dto/room/roomListOutputDTO'; import { Dexie, EntityTable, liveQuery } from 'Dexie'; import { err, ok } from 'neverthrow'; -import { Observable } from 'rxjs'; -import { RoomOutPutDTO } from '../../dto/room/roomOutputDTO'; import { z } from 'zod'; import { MessageInputDTO } from '../../dto/message/messageInputDtO'; -import { SessionStore } from 'src/app/store/session.service'; const tableSchema = z.object({ @@ -24,10 +19,12 @@ const tableSchema = z.object({ wxUserId: z.number(), wxFullName: z.string(), wxeMail: z.string(), - userPhoto: z.string() - }) + userPhoto: z.string(), + }), + sending: z.boolean().optional() }) + export type TableMessage = z.infer // Database declaration (move this to its own module also) @@ -49,6 +46,20 @@ export class MessageLocalDataSourceService { constructor() {} + async sendMessage(data: MessageInputDTO) { + + (data as TableMessage).sending = true + + try { + const result = await messageDataSource.message.add(data) + return ok(result as string) + } catch (e) { + return err(false) + } + + } + + async createMessage(data: MessageInputDTO) { try { @@ -62,7 +73,7 @@ export class MessageLocalDataSourceService { } - async update(data: TableMessage) { + async update(data: TableMessage ) { try { const result = await messageDataSource.message.update(data.id, data) 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 4cce0475b..c1eefc961 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 @@ -101,7 +101,7 @@ export class RoomLocalDataSourceService { return result } else { console.log(`No member found with $roomIdUserId ${$roomIdUserId}`); - return + return err('not Found') } } catch (e) { diff --git a/src/app/services/Repositorys/chat/repository/message-respository.service.ts b/src/app/services/Repositorys/chat/repository/message-respository.service.ts index ea8c46db6..c8a4691ed 100644 --- a/src/app/services/Repositorys/chat/repository/message-respository.service.ts +++ b/src/app/services/Repositorys/chat/repository/message-respository.service.ts @@ -25,7 +25,7 @@ export class MessageRepositoryService { wxUserId: SessionStore.user.UserId } - const localActionResult = await this.messageLocalDataSourceService.createMessage(data) + const localActionResult = await this.messageLocalDataSourceService.sendMessage(data) if(localActionResult.isOk()) { const sendMessageResult = await this.messageRemoteDataSourceService.sendMessage(data) @@ -42,9 +42,11 @@ export class MessageRepositoryService { id : localActionResult.value } - return this.messageLocalDataSourceService.update(clone) + return this.messageLocalDataSourceService.update({...clone, sending: false}) } + } else { + return this.messageLocalDataSourceService.update({sending: false}) } } @@ -52,7 +54,6 @@ export class MessageRepositoryService { const result = await this.messageRemoteDataSourceService.getMessagesFromRoom(id) if(result.isOk()) { - console.log({result}) for(const message of result.value.data) { let clone: TableMessage = message