mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
send direct message
This commit is contained in:
@@ -80,12 +80,12 @@ export class RoomLocalRepository extends DexieRepository<RoomTable> {
|
||||
}
|
||||
|
||||
|
||||
getItemsLive(): Observable<RoomListOutPutDTO[]> {
|
||||
return liveQuery(() => chatDatabase.room.toArray()) as any;
|
||||
getItemsLive(){
|
||||
return liveQuery(() => chatDatabase.room.toArray());
|
||||
}
|
||||
|
||||
getRoomByIdLive(id: any): Observable<RoomListItemOutPutDTO | undefined> {
|
||||
return liveQuery(() => chatDatabase.room.get(id)) as any;
|
||||
getRoomByIdLive(id: any) {
|
||||
return liveQuery(() => chatDatabase.room.get(id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ import { RoomInputDTO } from '../data/dto/room/roomInputDTO';
|
||||
import { UserRemoveListInputDTO } from '../data/dto/room/userRemoveListInputDTO';
|
||||
import { AddMemberToRoomInputDTO } from '../data/dto/room/addMemberToRoomInputDto';
|
||||
import { RoomUpdateInputDTO } from '../data/dto/room/roomUpdateInputDTO';
|
||||
import { RoomType } from "src/app/module/chat/domain/entity/group";
|
||||
|
||||
export const InstanceId = uuidv4();
|
||||
|
||||
@@ -151,7 +152,7 @@ export class ChatServiceService {
|
||||
return this.MemberAdminUseCaseService.execute(input)
|
||||
}
|
||||
|
||||
sendMessage(input: MessageEntity, messageEnum: MessageEnum) {
|
||||
sendMessage(input: MessageEntity, messageEnum: RoomType) {
|
||||
return this.MessageCreateUseCaseService.execute(input, messageEnum);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ import { err, Result } from 'neverthrow';
|
||||
import { MessageTable } from '../../infra/database/dexie/schema/message';
|
||||
import { MessageMapper } from '../mapper/messageMapper';
|
||||
import { SignalRService } from '../../infra/socket/signal-r.service';
|
||||
import { RoomType } from "src/app/module/chat/domain/entity/group";
|
||||
|
||||
|
||||
const MessageInputUseCaseSchema = z.object({
|
||||
memberId: z.number(),
|
||||
@@ -41,7 +43,7 @@ export class MessageCreateUseCaseService {
|
||||
) { }
|
||||
|
||||
|
||||
async execute(message: MessageEntity, messageEnum: MessageEnum) {
|
||||
async execute(message: MessageEntity, messageEnum: RoomType) {
|
||||
|
||||
const validation = zodSafeValidation<MessageEntity>(MessageEntitySchema, message)
|
||||
|
||||
@@ -94,7 +96,7 @@ export class MessageCreateUseCaseService {
|
||||
const DTO = MessageMapper.fromDomain(message, message.requestId)
|
||||
|
||||
let sendMessageResult: Result<MessageOutPutDataDTO, any>
|
||||
if(messageEnum == MessageEnum.group) {
|
||||
if(messageEnum == RoomType.Group) {
|
||||
sendMessageResult = await this.messageLiveSignalRDataSourceService.sendMessage<MessageOutPutDataDTO>(DTO)
|
||||
} else {
|
||||
sendMessageResult = await this.messageSocketRepositoryService.sendDirectMessage(DTO)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { z } from "zod";
|
||||
import { EntityTable } from 'Dexie';
|
||||
import { RoomType } from "src/app/module/chat/domain/entity/group";
|
||||
|
||||
export const RoomTableSchema = z.object({
|
||||
id: z.string(),
|
||||
@@ -12,6 +13,7 @@ export const RoomTableSchema = z.object({
|
||||
}),
|
||||
createdAt: z.any(),
|
||||
expirationDate: z.any().nullable(),
|
||||
roomType: z.nativeEnum(RoomType)
|
||||
})
|
||||
|
||||
export type RoomTable = z.infer<typeof RoomTableSchema>
|
||||
|
||||
Reference in New Issue
Block a user