diff --git a/src/app/module/chat/data/data-source/message/message-remote-data-source.service.ts b/src/app/module/chat/data/data-source/message/message-remote-data-source.service.ts index 97c027858..68fb2dc72 100644 --- a/src/app/module/chat/data/data-source/message/message-remote-data-source.service.ts +++ b/src/app/module/chat/data/data-source/message/message-remote-data-source.service.ts @@ -4,7 +4,6 @@ import { MessageInputDTO, MessageInputDTOSchema } from '../../dto/message/messag import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator'; import { APIReturn } from 'src/app/services/decorators/api-validate-schema.decorator'; import { MessageOutPutDTO, MessageOutPutDTOSchema } from '../../dto/message/messageOutputDTO'; -import { MessageListOutput } from '../../dto/message/messageListOutputDTO'; import { DataSourceReturn } from 'src/app/services/Repositorys/type'; @Injectable({ @@ -26,7 +25,7 @@ export class MessageRemoteDataSourceService { return await this.httpService.post(`${this.baseUrl}/Messages/${id}/React`, reaction); } - async getMessagesFromRoom(id: string): DataSourceReturn { + async getMessagesFromRoom(id: string): DataSourceReturn { return await this.httpService.get(`${this.baseUrl}/Room/${id}/Messages`); } diff --git a/src/app/module/chat/data/dto/message/messageListOutputDTO.ts b/src/app/module/chat/data/dto/message/messageListOutputDTO.ts deleted file mode 100644 index 3d45d499f..000000000 --- a/src/app/module/chat/data/dto/message/messageListOutputDTO.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { z } from "zod" - -const SenderSchema = z.object({ - wxUserId: z.number(), - wxFullName: z.string(), - wxeMail: z.string(), - userPhoto: z.string() -}); - -const DataSchema = z.object({ - id: z.string(), - sender: SenderSchema, - message: z.string(), - messageType: z.number(), - sentAt: z.string().datetime(), - deliverAt: z.string().datetime().nullable(), - canEdit: z.boolean(), - oneShot: z.boolean(), - requireUnlock: z.boolean() -}); - -const MessageListOutputSchema = z.object({ - success: z.boolean(), - message: z.string().nullable(), - data: z.array(DataSchema) -}); - - -export type MessageListOutput = z.infer diff --git a/src/app/module/chat/data/dto/message/messageOutputDTO.ts b/src/app/module/chat/data/dto/message/messageOutputDTO.ts index 4c4edfe0f..86e1c5727 100644 --- a/src/app/module/chat/data/dto/message/messageOutputDTO.ts +++ b/src/app/module/chat/data/dto/message/messageOutputDTO.ts @@ -2,7 +2,7 @@ import { z } from "zod" const DataSchema = z.object({ id: z.string(), - chatRoomId: z.string(), + roomId: z.string(), wxUserId: z.number(), sender: z.object({ wxUserId: z.number(), @@ -17,14 +17,17 @@ const DataSchema = z.object({ canEdit: z.boolean(), oneShot: z.boolean(), requireUnlock: z.boolean(), - requestId: z.string() + requestId: z.string(), + reactions: z.array(z.object({})), + info: z.array(z.object({})), + attachments: z.array(z.object({})) }); export const MessageOutPutDTOSchema = z.object({ success: z.boolean(), message: z.string(), - data: DataSchema + data: DataSchema.array() }); export type MessageOutPutDataDTO = z.infer diff --git a/src/app/module/chat/domain/use-case/socket/socket-message-update-use-case.service.ts b/src/app/module/chat/domain/use-case/socket/socket-message-update-use-case.service.ts index 9d6e88c79..7e4f1fcca 100644 --- a/src/app/module/chat/domain/use-case/socket/socket-message-update-use-case.service.ts +++ b/src/app/module/chat/domain/use-case/socket/socket-message-update-use-case.service.ts @@ -17,8 +17,7 @@ export class SocketMessageUpdateUseCaseService { const incomingMessage = { ...data, - sending: false, - roomId:data.chatRoomId + sending: false } // delete data.chatRoomId diff --git a/src/app/module/chat/infra/database/dexie/schema/message.ts b/src/app/module/chat/infra/database/dexie/schema/message.ts index d8a74c24b..504c3a10e 100644 --- a/src/app/module/chat/infra/database/dexie/schema/message.ts +++ b/src/app/module/chat/infra/database/dexie/schema/message.ts @@ -18,12 +18,14 @@ export const MessageTable = z.object({ userPhoto: z.string(), }), sending: z.boolean().optional(), - reaction: z.object({ + reactions: z.object({ id: z.string(), reactedAt: z.string(), reaction: z.string(), sender: z.object({}), - }).array() + }).array().optional(), + info: z.array(z.object({})).optional(), + attachments: z.array(z.object({})).optional() }) export type MessageTable = z.infer diff --git a/src/app/module/chat/infra/database/dexie/service.ts b/src/app/module/chat/infra/database/dexie/service.ts index 8ddf9fb81..0994a9318 100644 --- a/src/app/module/chat/infra/database/dexie/service.ts +++ b/src/app/module/chat/infra/database/dexie/service.ts @@ -5,6 +5,7 @@ import { DexieMembersTableSchema, MemberTableColumn } from './schema/members'; import { DexieRoomsTableSchema, RoomTableColumn } from './schema/room'; import { DexieTypingsTableSchema, TypingTableColumn } from './schema/typing'; import { MessageEntity } from '../../../domain/entity/message'; +// import DexieMemory from 'dexie-in-memory'; // Database declaration (move this to its own module also) export const chatDatabase = new Dexie('chat-database-infra') as Dexie & { @@ -22,3 +23,4 @@ chatDatabase.version(1).stores({ }); chatDatabase.message.mapToClass(MessageEntity) +// Apply in-memory storage diff --git a/src/app/module/chat/infra/socket/signal-r.service.spec.ts b/src/app/module/chat/infra/socket/signal-r.service.spec.ts deleted file mode 100644 index f737fa50b..000000000 --- a/src/app/module/chat/infra/socket/signal-r.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { SignalRService } from './signal-r.service'; - -describe('SignalRService', () => { - let service: SignalRService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(SignalRService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -});