mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
reorganizde file path
This commit is contained in:
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Subject } from 'rxjs';
|
||||
import { DexieRepository } from 'src/app/infra/repository/dexie/dexie-repository.service';
|
||||
import { chatDatabase } from '../../infra/database/dexie/service';
|
||||
import { AttachmentTable, AttachmentTableSchema } from '../../infra/database/dexie/schema/attachment';
|
||||
import { chatDatabase } from '../../../infra/database/dexie/service';
|
||||
import { AttachmentTable, AttachmentTableSchema } from '../../../infra/database/dexie/schema/attachment';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { Injectable, Input } from '@angular/core';
|
||||
import { HttpService } from 'src/app/services/http.service';
|
||||
import { DataSourceReturn } from 'src/app/services/Repositorys/type';
|
||||
import { MessageOutPutDTO } from '../dto/message/messageOutputDTO';
|
||||
import { MessageAttachmentByMessageIdInput } from '../../domain/use-case/message-attachment-by-message-id.service';
|
||||
import { MessageOutPutDTO } from '../../dto/message/messageOutputDTO';
|
||||
import { MessageAttachmentByMessageIdInput } from '../../../domain/use-case/message/message-attachment-by-message-id.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
+3
-3
@@ -2,11 +2,11 @@ import { Injectable } from '@angular/core';
|
||||
import { Dexie, EntityTable, liveQuery, Observable } from 'Dexie';
|
||||
import { z } from 'zod';
|
||||
import { DexieRepository } from 'src/app/infra/repository/dexie/dexie-repository.service';
|
||||
import { chatDatabase } from '../../infra/database/dexie/service';
|
||||
import { chatDatabase } from '../../../infra/database/dexie/service';
|
||||
import { ok } from 'neverthrow';
|
||||
import { err, Result } from 'neverthrow';
|
||||
import { MemberListUPdateStatusInputDTO } from '../../domain/use-case/socket/member-list-update-status-use-case.service';
|
||||
import { MemberTable, MemberTableSchema } from '../../infra/database/dexie/schema/members';
|
||||
import { MemberListUPdateStatusInputDTO } from '../../../domain/use-case/socket/member-list-update-status-use-case.service';
|
||||
import { MemberTable, MemberTableSchema } from '../../../infra/database/dexie/schema/members';
|
||||
import { from } from 'rxjs';
|
||||
|
||||
@Injectable({
|
||||
+2
-2
@@ -3,8 +3,8 @@ import { Result } from 'neverthrow';
|
||||
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
|
||||
import { HttpService } from 'src/app/services/http.service';
|
||||
import { DataSourceReturn } from 'src/app/services/Repositorys/type';
|
||||
import { AddMemberToRoomInputDTOSchema, AddMemberToRoomInputDTO } from '../dto/room/addMemberToRoomInputDto';
|
||||
import { UserRemoveListInputDTOSchema, UserRemoveListInputDTO } from '../dto/room/userRemoveListInputDTO';
|
||||
import { AddMemberToRoomInputDTOSchema, AddMemberToRoomInputDTO } from '../../dto/room/addMemberToRoomInputDto';
|
||||
import { UserRemoveListInputDTOSchema, UserRemoveListInputDTO } from '../../dto/room/userRemoveListInputDTO';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
+6
-6
@@ -5,10 +5,10 @@ import { SessionStore } from 'src/app/store/session.service';
|
||||
import { MessageDeleteInputDTO } from '../../dto/message/messageDeleteInputDTO';
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import { InstanceId } from '../../../domain/chat-service.service';
|
||||
import { MessageUpdateInput } from '../../../domain/use-case/message-update-by-id-use-case.service';
|
||||
import { MessageUpdateInput } from '../../../domain/use-case/message/message-update-by-id-use-case.service';
|
||||
import { MessageOutPutDataDTO } from '../../dto/message/messageOutputDTO';
|
||||
import { MessageInputDTO } from '../../dto/message/messageInputDtO';
|
||||
import { MessageReactionInput } from '../../../domain/use-case/message-reaction-by-id-use-case.service';
|
||||
import { MessageReactionInput } from '../../../domain/use-case/message/message-reaction-by-id-use-case.service';
|
||||
|
||||
interface msgObj {
|
||||
roomId: string;
|
||||
@@ -56,8 +56,8 @@ export class MessageSocketRepositoryService {
|
||||
|
||||
async sendGroupMessage(data: MessageInputDTO) {
|
||||
|
||||
if(data['requestId']) {
|
||||
data['requestId'] = InstanceId +'@'+ uuidv4();
|
||||
if(!data.requestId) {
|
||||
data.requestId = InstanceId +'@'+ uuidv4();
|
||||
}
|
||||
|
||||
const result = await this.socket.sendData<MessageOutPutDataDTO>({
|
||||
@@ -70,8 +70,8 @@ export class MessageSocketRepositoryService {
|
||||
|
||||
async sendDirectMessage(data: MessageInputDTO) {
|
||||
|
||||
if(data['requestId']) {
|
||||
data['requestId'] = InstanceId +'@'+ uuidv4();
|
||||
if(!data.requestId) {
|
||||
data.requestId = InstanceId +'@'+ uuidv4();
|
||||
}
|
||||
const result = await this.socket.sendData<MessageOutPutDataDTO>({
|
||||
method: 'SendDirectMessage',
|
||||
|
||||
@@ -14,7 +14,6 @@ import { Observable as DexieObservable, PromiseExtended } from 'Dexie';
|
||||
})
|
||||
export class MessageLocalDataSourceService extends DexieRepository<MessageTable, MessageEntity> {
|
||||
|
||||
messageSubject = new Subject();
|
||||
|
||||
constructor() {
|
||||
super(chatDatabase.message, MessageTableSchema)
|
||||
@@ -33,128 +32,6 @@ export class MessageLocalDataSourceService extends DexieRepository<MessageTable,
|
||||
}
|
||||
}
|
||||
|
||||
async getLastMessageByRoomId(roomId: string): Promise<Result<undefined|MessageTable, any>> {
|
||||
try {
|
||||
console.log({roomId})
|
||||
const lastMessage = await chatDatabase.message
|
||||
.where('roomId')
|
||||
.equals(roomId)
|
||||
.reverse()
|
||||
.sortBy('id');
|
||||
|
||||
return ok(lastMessage[0]); // Get the last message
|
||||
} catch (error) {
|
||||
return err(error);
|
||||
}
|
||||
}
|
||||
|
||||
async deleteByMessageId(id: string): Promise<Result<undefined|number, any>> {
|
||||
try {
|
||||
console.log(id)
|
||||
const lastMessage = await chatDatabase.message
|
||||
.where('id')
|
||||
.equals(id).delete()
|
||||
|
||||
return ok(lastMessage[0]); // Get the last message
|
||||
} catch (error) {
|
||||
return err(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async sendMessage(data: MessageTable) {
|
||||
|
||||
const dataValidation = MessageTableSchema.safeParse(data)
|
||||
if(dataValidation.success) {
|
||||
|
||||
const safeData = dataValidation.data
|
||||
safeData.sending = true
|
||||
|
||||
try {
|
||||
const result = await chatDatabase.message.add(safeData)
|
||||
this.messageSubject.next({roomId: safeData.roomId});
|
||||
return ok(result as number)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
|
||||
} else {
|
||||
console.log(dataValidation)
|
||||
return err(dataValidation)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// @ValidateSchema(tableSchema)
|
||||
async createMessage(data: MessageTable) {
|
||||
|
||||
try {
|
||||
const result = await chatDatabase.message.add(data)
|
||||
this.messageSubject.next({roomId: data.roomId});
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async createManyMessage(data: MessageTable[]) {
|
||||
|
||||
try {
|
||||
const result = await chatDatabase.message.bulkAdd(data)
|
||||
this.messageSubject.next({roomId: data[0].roomId});
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async messageExist({id}) {
|
||||
try {
|
||||
|
||||
console.log({id});
|
||||
|
||||
const existingMessage = await chatDatabase.message
|
||||
.where('id')
|
||||
.equals(id)
|
||||
.first();
|
||||
|
||||
if (existingMessage) {
|
||||
return ok(existingMessage)
|
||||
} else {
|
||||
return err(false)
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
return err(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// not used
|
||||
async updateByMessageId(data: MessageTable ) {
|
||||
|
||||
try {
|
||||
const result = await chatDatabase.message.update(data.id as any, data)
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
async findOrUpdate(data: MessageTable) {
|
||||
const findResult = await this.findMessageById(data.id)
|
||||
|
||||
if(findResult.isOk()) {
|
||||
return this.update(findResult.value.$id, data)
|
||||
} else {
|
||||
return this.createMessage(data)
|
||||
}
|
||||
}
|
||||
|
||||
getItems(roomId: string): PromiseExtended<MessageEntity[]> {
|
||||
return chatDatabase.message.where('roomId').equals(roomId).sortBy('$id') as any
|
||||
}
|
||||
@@ -163,33 +40,6 @@ export class MessageLocalDataSourceService extends DexieRepository<MessageTable,
|
||||
return liveQuery(() => chatDatabase.message.where('roomId').equals(roomId).sortBy('$id') as any)
|
||||
}
|
||||
|
||||
|
||||
async findMessageById(id: string) {
|
||||
try {
|
||||
const a = await chatDatabase.message.where('id').equals(id).first()
|
||||
|
||||
if(a) {
|
||||
return ok(a)
|
||||
} else {
|
||||
return err('not found')
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
return err('DB error')
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
subscribeToNewMessage(roomId: string): Observable<MessageTable> {
|
||||
return this.messageSubject.pipe(
|
||||
filter((message: MessageTable) =>
|
||||
message.roomId === roomId
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
async getOfflineMessages () {
|
||||
try {
|
||||
const allMessages = await chatDatabase.message
|
||||
|
||||
@@ -6,7 +6,7 @@ import { APIReturn } from 'src/app/services/decorators/api-validate-schema.decor
|
||||
import { MessageOutPutDataDTOSchema, MessageOutPutDTO, MessageOutPutDTOSchema } from '../../dto/message/messageOutputDTO';
|
||||
import { DataSourceReturn } from 'src/app/services/Repositorys/type';
|
||||
import { SignalRService } from '../../../infra/socket/signal-r.service';
|
||||
import { MessageUpdateInput } from '../../../domain/use-case/message-update-by-id-use-case.service';
|
||||
import { MessageUpdateInput } from '../../../domain/use-case/message/message-update-by-id-use-case.service';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { MessageDeleteInputDTO } from '../../dto/message/messageDeleteInputDTO';
|
||||
import { InstanceId } from '../../../domain/chat-service.service';
|
||||
@@ -30,9 +30,9 @@ export class MessageRemoteDataSourceService {
|
||||
return await this.httpService.post<MessageOutPutDTO>(`${this.baseUrl}/Messages`, data);
|
||||
}
|
||||
|
||||
async reactToMessage(id: string, reaction: any) {
|
||||
return await this.httpService.post<any>(`${this.baseUrl}/Messages/${id}/React`, reaction);
|
||||
}
|
||||
// async reactToMessage(id: string, reaction: any) {
|
||||
// return await this.httpService.post<any>(`${this.baseUrl}/Messages/${id}/React`, reaction);
|
||||
// }
|
||||
|
||||
|
||||
// @APIReturn(MessageOutPutDTOSchema, 'get/Messages')
|
||||
|
||||
@@ -18,69 +18,6 @@ export class RoomLocalRepository extends DexieRepository<RoomTable, RoomTable>
|
||||
super(chatDatabase.room, RoomTableSchema)
|
||||
}
|
||||
|
||||
async removeUserTyping() {}
|
||||
|
||||
@ValidateSchema(RoomTableSchema)
|
||||
async createRoom(data: RoomTable) {
|
||||
try {
|
||||
const result = await chatDatabase.room.add(data)
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async deleteRoomById(id: string) {
|
||||
try {
|
||||
const result = await chatDatabase.room.delete(id)
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async leaveRoom(id: string) {
|
||||
return this.deleteRoomById(id)
|
||||
}
|
||||
|
||||
async updateRoom(data: RoomTable) {
|
||||
try {
|
||||
const result = await chatDatabase.room.update(data.id, data);
|
||||
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
}
|
||||
|
||||
async createOrUpdateRoom(data: RoomTable) {
|
||||
const createResult = await this.createRoom(data)
|
||||
|
||||
if(createResult.isOk()) {
|
||||
return createResult
|
||||
} else {
|
||||
return this.updateRoom(data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async getRoomById(id: any) {
|
||||
try {
|
||||
const result = await chatDatabase.room.get(id)
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async getRoomList() {
|
||||
return await this.findAll()
|
||||
}
|
||||
|
||||
|
||||
getItemsLive(){
|
||||
return from (liveQuery(() => chatDatabase.room.toArray()));
|
||||
}
|
||||
@@ -89,6 +26,5 @@ export class RoomLocalRepository extends DexieRepository<RoomTable, RoomTable>
|
||||
return liveQuery(() => chatDatabase.room.get(id));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import { RoomUpdateInputDTO, RoomUpdateInputDTOSchema } from '../../dto/room/roo
|
||||
import { RoomUpdateOutputDTO } from '../../dto/room/roomUpdateOutputDTO';
|
||||
import { DataSourceReturn } from 'src/app/services/Repositorys/type';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { MemberSetAdminDTO } from '../../../domain/use-case/member-admin-use-case.service';
|
||||
import { MemberSetAdminDTO } from '../../../domain/use-case/member/member-admin-use-case.service';
|
||||
import { SignalRService } from '../../../infra/socket/signal-r.service';
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
import { MessageEntity } from "src/app/core/chat/entity/message";
|
||||
import { UseCase } from "src/app/utils/use-case-interface";
|
||||
|
||||
export abstract class ITemplateCreateAdapter implements UseCase<MessageEntity, any> {
|
||||
execute(input: MessageEntity): Promise<any> {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
}
|
||||
@@ -1,39 +1,39 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MessageDeleteLiveUseCaseService } from 'src/app/module/chat/domain/use-case/message-delete-by-id-live-use-case.service'
|
||||
import { MessageDeleteLiveUseCaseService } from 'src/app/module/chat/domain/use-case/message/message-delete-by-id-live-use-case.service'
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { MessageReactionInput, MessageReactionUseCaseService } from 'src/app/module/chat/domain/use-case/message-reaction-by-id-use-case.service';
|
||||
import { MessageUpdateInput, MessageUpdateUseCaseService } from 'src/app/module/chat/domain/use-case/message-update-by-id-use-case.service';
|
||||
import { MemberAdminUseCaseService, MemberSetAdminDTO } from 'src/app/module/chat/domain/use-case/member-admin-use-case.service';
|
||||
import { MessageCreateUseCaseService, MessageEnum } from 'src/app/module/chat/domain/use-case/message-create-use-case.service';
|
||||
import { MessageReactionInput, MessageReactionUseCaseService } from 'src/app/module/chat/domain/use-case/message/message-reaction-by-id-use-case.service';
|
||||
import { MessageUpdateInput, MessageUpdateUseCaseService } from 'src/app/module/chat/domain/use-case/message/message-update-by-id-use-case.service';
|
||||
import { MemberAdminUseCaseService, MemberSetAdminDTO } from 'src/app/module/chat/domain/use-case/member/member-admin-use-case.service';
|
||||
import { MessageCreateUseCaseService, MessageEnum } from 'src/app/module/chat/domain/use-case/message/message-create-use-case.service';
|
||||
import { SignalRService } from '../infra/socket/signal-r.service';
|
||||
import { SocketMessageDeleteUseCaseService } from 'src/app/module/chat/domain/use-case/socket/socket-message-delete-use-case.service';
|
||||
import { SocketMessageUpdateUseCaseService } from 'src/app/module/chat/domain/use-case/socket/socket-message-update-use-case.service';
|
||||
import { SocketMessageCreateUseCaseService } from 'src/app/module/chat/domain/use-case/socket/socket-message-create-use-case.service';
|
||||
import { DownloadMessageAttachmentUserCaseService } from 'src/app/module/chat/domain/use-case/message-download-attachment-user-case.service';
|
||||
import { ListenMessageByRoomIdNewUseCase } from 'src/app/module/chat/domain/use-case/listen-message-by-roomId.service';
|
||||
import { DownloadMessageAttachmentUserCaseService } from 'src/app/module/chat/domain/use-case/message/message-download-attachment-user-case.service';
|
||||
import { ListenMessageByRoomIdNewUseCase } from 'src/app/module/chat/domain/use-case/message/listen-message-by-roomId.service';
|
||||
import { MemberListUpdateStatusUseCaseService } from 'src/app/module/chat/domain/use-case/socket/member-list-update-status-use-case.service';
|
||||
import { ListenMessageDeleteByRoomIdService } from './use-case/listene-message-delete-by-roomId.service';
|
||||
import { ListenMessageUpdateByRoomIdUseCase } from './use-case/listen-message-update-by-roomId.service';
|
||||
import { GetRoomByIdUseCaseService } from './use-case/room-get-by-id-use-case.service';
|
||||
import { DeleteRoomUseCaseService } from './use-case/room-delete-by-id-use-case.service';
|
||||
import { CreateRoomUseCaseService } from './use-case/room-create-use-case.service';
|
||||
import { RoomLeaveUseCase } from './use-case/room-leave-by-id-use-case.service';
|
||||
import { SyncAllRoomMessagesService } from './use-case/sync-all-room-messages.service';
|
||||
import { ListenSendMessageUseCase } from './use-case/listen-send-message.service'
|
||||
import { MessageReadAtByIdUseCaseService } from './use-case/message-read-at-by-id-use-case.service'
|
||||
import { SendLocalMessagesUseCaseService } from './use-case/messages-send-offline-use-case.service'
|
||||
import { ListenMessageDeleteByRoomIdService } from './use-case/message/listene-message-delete-by-roomId.service';
|
||||
import { ListenMessageUpdateByRoomIdUseCase } from './use-case/message/listen-message-update-by-roomId.service';
|
||||
import { GetRoomByIdUseCaseService } from './use-case/room/room-get-by-id-use-case.service';
|
||||
import { DeleteRoomUseCaseService } from './use-case/room/room-delete-by-id-use-case.service';
|
||||
import { CreateRoomUseCaseService } from './use-case/room/room-create-use-case.service';
|
||||
import { RoomLeaveUseCase } from './use-case/room/room-leave-by-id-use-case.service';
|
||||
import { SyncAllRoomMessagesService } from './use-case/message/sync-all-room-messages.service';
|
||||
import { ListenSendMessageUseCase } from './use-case/message/listen-send-message.service'
|
||||
import { MessageReadAtByIdUseCaseService } from './use-case/message/message-read-at-by-id-use-case.service'
|
||||
import { SendLocalMessagesUseCaseService } from './use-case/message/messages-send-offline-use-case.service'
|
||||
import { RemoveMemberUseCaseService } from './use-case/member/-use-case.service'
|
||||
import { AddMemberUseCaseService } from './use-case/member-add-use-case.service'
|
||||
import { UpdateRoomByIdUseCaseService } from './use-case/room-update-by-id-use-case.service'
|
||||
import { AddMemberUseCaseService } from './use-case/member/member-add-use-case.service'
|
||||
import { UpdateRoomByIdUseCaseService } from './use-case/room/room-update-by-id-use-case.service'
|
||||
import { SocketConnectUseCaseService } from './use-case/socket-connect-use-case.service'
|
||||
import { MessageMarkAsReadUseCaseService } from './use-case/message/message-mark-as-read-use-case.service'
|
||||
import { MessageMarkAllMessageAsReadByRoomIdInputSchema, MessageMarkAllMessageAsReadByRoomIdService } from './use-case/message/message-mark-all-message-as-read-by-room-id.service'
|
||||
import { GetMessageAttachmentLocallyUseCaseService } from 'src/app/module/chat/domain/use-case/message-get-attachment-localy-use-case.service';
|
||||
import { GetRoomListUseCaseService } from 'src/app/module/chat/domain/use-case/room-get-list-use-case.service';
|
||||
import { GetMessageAttachmentLocallyUseCaseService } from 'src/app/module/chat/domain/use-case/message/message-get-attachment-localy-use-case.service';
|
||||
import { GetRoomListUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-get-list-use-case.service';
|
||||
import { filter } from 'rxjs/operators';
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import { MessageEntity } from '../../../core/chat/entity/message';
|
||||
import { MessageAttachmentByMessageIdInput, MessageAttachmentByMessageIdUseCase } from './use-case/message-attachment-by-message-id.service';
|
||||
import { MessageAttachmentByMessageIdInput, MessageAttachmentByMessageIdUseCase } from './use-case/message/message-attachment-by-message-id.service';
|
||||
import { RoomInputDTO } from '../data/dto/room/roomInputDTO';
|
||||
import { UserRemoveListInputDTO } from '../data/dto/room/userRemoveListInputDTO';
|
||||
import { AddMemberToRoomInputDTO } from '../data/dto/room/addMemberToRoomInputDto';
|
||||
@@ -214,9 +214,9 @@ export class ChatServiceService {
|
||||
return this.UpdateRoomByIdUseCaseService.execute(data)
|
||||
}
|
||||
|
||||
messageMarkAsRead(roomId) {
|
||||
return this.MessageReadAtByIdUseCaseService.execute({roomId})
|
||||
}
|
||||
// messageMarkAsRead(roomId) {
|
||||
// return this.MessageReadAtByIdUseCaseService.execute({roomId})
|
||||
// }
|
||||
|
||||
sendLocalMessages() {
|
||||
return this.SendLocalMessagesUseCaseService.execute()
|
||||
|
||||
@@ -17,7 +17,7 @@ export class MessageMapper {
|
||||
requireUnlock: entity.requireUnlock,
|
||||
roomId: entity.roomId,
|
||||
senderId: entity.sender.wxUserId,
|
||||
requestId: requestId,
|
||||
requestId: entity.requestId || requestId,
|
||||
attachment: entity.attachments.map((e)=>({
|
||||
fileType:e.fileType,
|
||||
source: e.source,
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { captureAndReraiseAsync } from 'src/app/services/decorators/captureAndReraiseAsync';
|
||||
import { AddMemberToRoomInputDTO } from '../../data/dto/room/addMemberToRoomInputDto';
|
||||
import { RoomRemoteDataSourceService } from '../../data/repository/room/room-remote-repository.service';
|
||||
import { AddMemberToRoomInputDTO } from '../../../data/dto/room/addMemberToRoomInputDto';
|
||||
import { RoomRemoteDataSourceService } from '../../../data/repository/room/room-remote-repository.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { z } from "zod";
|
||||
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
|
||||
import { RoomRemoteDataSourceService } from '../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomRemoteDataSourceService } from '../../../data/repository/room/room-remote-repository.service';
|
||||
|
||||
// Define the schema for the entire response
|
||||
const MemberSetAdminDTOSchema = z.object({
|
||||
@@ -1,31 +0,0 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { err, ok } from 'neverthrow';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { MessageLocalDataSourceService } from '../../data/repository/message/message-local-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageRemoteDataSourceService } from '../../data/repository/message/message-remote-data-source.service';
|
||||
import { SignalRService } from '../../infra/socket/signal-r.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class MessageReadAtByIdUseCaseService {
|
||||
|
||||
constructor(
|
||||
private MessageSocketRepositoryService: MessageSocketRepositoryService,
|
||||
private messageLiveSignalRDataSourceService: SignalRService,
|
||||
private messageLocalDataSourceService: MessageLocalDataSourceService,
|
||||
) { }
|
||||
|
||||
async execute({roomId}) {
|
||||
const result = await this.messageLocalDataSourceService.getLastMessageByRoomId(roomId)
|
||||
if(result.isOk()) {
|
||||
if(result.value) {
|
||||
|
||||
return await this.MessageSocketRepositoryService.sendReadAt({roomId, memberId: SessionStore.user.UserId, messageId: result.value.id, requestId: ''})
|
||||
}
|
||||
return ok(true)
|
||||
}
|
||||
return err(false)
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -1,8 +1,9 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { filter, map } from 'rxjs/operators';
|
||||
import { InstanceId } from '../chat-service.service';
|
||||
import { InstanceId } from '../../chat-service.service';
|
||||
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service'
|
||||
import { MessageEntity } from '../../../../core/chat/entity/message';
|
||||
import { MessageEntity } from '../../../../../core/chat/entity/message';
|
||||
import { UseCase } from 'src/app/utils/use-case-interface';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { filter } from 'rxjs/operators';
|
||||
import { MessageSocketRepositoryService } from '../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service'
|
||||
import { InstanceId } from '../chat-service.service';
|
||||
import { InstanceId } from '../../chat-service.service';
|
||||
import { filter, map } from 'rxjs/operators';
|
||||
|
||||
@Injectable({
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { SignalRService } from '../../infra/socket/signal-r.service';
|
||||
import { SignalRService } from '../../../infra/socket/signal-r.service';
|
||||
import { filter } from 'rxjs/operators';
|
||||
|
||||
@Injectable({
|
||||
+3
-3
@@ -1,11 +1,11 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { z } from 'zod';
|
||||
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/repository/attachment-remote-repository.service'
|
||||
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/attachment-local-repository.service'
|
||||
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/repository/attachment/attachment-remote-repository.service'
|
||||
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/attachment/attachment-local-repository.service'
|
||||
import { convertBlobToDataURL } from 'src/app/utils/ToBase64';
|
||||
import { Result } from 'neverthrow';
|
||||
import { Logger } from 'src/app/services/logger/main/service';
|
||||
import { MessageEntity } from '../../../../core/chat/entity/message';
|
||||
import { MessageEntity } from '../../../../../core/chat/entity/message';
|
||||
|
||||
const MessageAttachmentByMessageIdSchema = z.object({
|
||||
$messageId: z.number(),
|
||||
+11
-11
@@ -1,21 +1,21 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MessageEntity, MessageEntitySchema, } from '../../../../core/chat/entity/message';
|
||||
import { AttachmentLocalDataSource } from "src/app/module/chat/data/repository/attachment-local-repository.service";
|
||||
import { MessageEntity, MessageEntitySchema, } from '../../../../../core/chat/entity/message';
|
||||
import { AttachmentLocalDataSource } from "src/app/module/chat/data/repository/attachment/attachment-local-repository.service";
|
||||
import { z } from 'zod';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { InstanceId } from '../chat-service.service';
|
||||
import { InstanceId } from '../../chat-service.service';
|
||||
import { createDataURL } from 'src/app/utils/ToBase64';
|
||||
import { zodSafeValidation } from 'src/app/utils/zodValidation';
|
||||
import { Logger } from 'src/app/services/logger/main/service';
|
||||
import { MessageAttachmentSource, MessageOutPutDataDTO } from '../../data/dto/message/messageOutputDTO';
|
||||
import { MessageLocalDataSourceService } from '../../data/repository/message/message-local-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageAttachmentSource, MessageOutPutDataDTO } from '../../../data/dto/message/messageOutputDTO';
|
||||
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { err, Result } from 'neverthrow';
|
||||
import { MessageTable } from '../../infra/database/dexie/schema/message';
|
||||
import { MessageMapper } from '../mapper/messageMapper';
|
||||
import { MessageTable } from '../../../infra/database/dexie/schema/message';
|
||||
import { MessageMapper } from '../../mapper/messageMapper';
|
||||
import { RoomType } from "src/app/core/chat/entity/group";
|
||||
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
|
||||
import { MemberListLocalRepository } from 'src/app/module/chat/data/repository/member-list-local-repository.service'
|
||||
import { MemberListLocalRepository } from 'src/app/module/chat/data/repository/member/member-list-local-repository.service'
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
|
||||
const MessageInputUseCaseSchema = z.object({
|
||||
@@ -54,9 +54,9 @@ export class MessageCreateUseCaseService {
|
||||
message.sendAttemp++;
|
||||
|
||||
message.requestId = InstanceId +'@'+ uuidv4();
|
||||
message.sending = true;
|
||||
|
||||
|
||||
const createMessageLocally = await this.messageLocalDataSourceService.sendMessage(message)
|
||||
const createMessageLocally = await this.messageLocalDataSourceService.insert(message)
|
||||
|
||||
if(createMessageLocally.isOk()) {
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { z } from 'zod';
|
||||
import { SafeValidateSchema, ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
|
||||
import { MessageRemoteDataSourceService } from '../../data/repository/message/message-remote-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageRemoteDataSourceService } from '../../../data/repository/message/message-remote-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { XTracerAsync, TracingType } from 'src/app/services/monitoring/opentelemetry/tracer';
|
||||
export const MessageDeleteInputDTOSchema = z.object({
|
||||
requestId: z.string().optional(),
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/repository/attachment-remote-repository.service'
|
||||
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/repository/attachment/attachment-remote-repository.service'
|
||||
import { Logger } from 'src/app/services/logger/main/service';
|
||||
import { convertBlobToDataURL } from 'src/app/utils/ToBase64';
|
||||
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/attachment-local-repository.service'
|
||||
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/attachment/attachment-local-repository.service'
|
||||
import { MessageAttachmentByMessageIdInput } from './message-attachment-by-message-id.service';
|
||||
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MessageAttachmentByMessageIdInput } from './message-attachment-by-message-id.service';
|
||||
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/repository/attachment-remote-repository.service'
|
||||
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/attachment-local-repository.service'
|
||||
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/repository/attachment/attachment-remote-repository.service'
|
||||
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/attachment/attachment-local-repository.service'
|
||||
import { err, Result } from 'neverthrow';
|
||||
|
||||
@Injectable({
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { object, z } from 'zod';
|
||||
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
|
||||
import { MessageRemoteDataSourceService } from '../../data/repository/message/message-remote-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageRemoteDataSourceService } from '../../../data/repository/message/message-remote-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
|
||||
|
||||
|
||||
const MessageReactionInputDTOSchema = z.object({
|
||||
@@ -0,0 +1,31 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { err, ok } from 'neverthrow';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageRemoteDataSourceService } from '../../../data/repository/message/message-remote-data-source.service';
|
||||
import { SignalRService } from '../../../infra/socket/signal-r.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class MessageReadAtByIdUseCaseService {
|
||||
|
||||
constructor(
|
||||
private MessageSocketRepositoryService: MessageSocketRepositoryService,
|
||||
private messageLiveSignalRDataSourceService: SignalRService,
|
||||
private messageLocalDataSourceService: MessageLocalDataSourceService,
|
||||
) { }
|
||||
|
||||
async execute({roomId}) {
|
||||
// const result = await this.messageLocalDataSourceService.getLastMessageByRoomId(roomId)
|
||||
// if(result.isOk()) {
|
||||
// if(result.value) {
|
||||
|
||||
// return await this.MessageSocketRepositoryService.sendReadAt({roomId, memberId: SessionStore.user.UserId, messageId: result.value.id, requestId: ''})
|
||||
// }
|
||||
// return ok(true)
|
||||
// }
|
||||
// return err(false)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MessageEntity } from '../../../../core/chat/entity/message';
|
||||
import { MessageEntity } from '../../../../../core/chat/entity/message';
|
||||
import { z } from 'zod';
|
||||
|
||||
const MessageInputUseCaseSchema = z.object({
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { z } from 'zod';
|
||||
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
|
||||
import { MessageRemoteDataSourceService } from '../../data/repository/message/message-remote-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageRemoteDataSourceService } from '../../../data/repository/message/message-remote-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
|
||||
|
||||
|
||||
const MessageUpdateInputDTOSchema = z.object({
|
||||
+9
-9
@@ -1,17 +1,17 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MessageLocalDataSourceService } from '../../data/repository/message/message-local-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageTable } from '../../infra/database/dexie/schema/message';
|
||||
import { InstanceId } from '../chat-service.service';
|
||||
import { MessageMapper } from '../mapper/messageMapper';
|
||||
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageTable } from '../../../infra/database/dexie/schema/message';
|
||||
import { InstanceId } from '../../chat-service.service';
|
||||
import { MessageMapper } from '../../mapper/messageMapper';
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import { AttachmentLocalDataSource } from '../../data/repository/attachment-local-repository.service';
|
||||
import { RoomLocalRepository } from '../../data/repository/room/room-local-repository.service';
|
||||
import { MemberListLocalRepository } from 'src/app/module/chat/data/repository/member-list-local-repository.service'
|
||||
import { AttachmentLocalDataSource } from '../../../data/repository/attachment/attachment-local-repository.service';
|
||||
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
|
||||
import { MemberListLocalRepository } from 'src/app/module/chat/data/repository/member/member-list-local-repository.service'
|
||||
import { Result } from 'neverthrow';
|
||||
import { RoomType } from 'src/app/core/chat/entity/group';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { MessageOutPutDataDTO } from '../../data/dto/message/messageOutputDTO';
|
||||
import { MessageOutPutDataDTO } from '../../../data/dto/message/messageOutputDTO';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
+22
-27
@@ -1,11 +1,11 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MessageLocalDataSourceService } from '../../data/repository/message/message-local-data-source.service';
|
||||
import { messageListDetermineChanges } from '../../data/async/list/rooms/messageListChangedetector';
|
||||
import { MessageTable } from '../../infra/database/dexie/schema/message';
|
||||
import { MessageRemoteDataSourceService } from '../../data/repository/message/message-remote-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
|
||||
import { messageListDetermineChanges } from '../../../data/async/list/rooms/messageListChangedetector';
|
||||
import { MessageTable } from '../../../infra/database/dexie/schema/message';
|
||||
import { MessageRemoteDataSourceService } from '../../../data/repository/message/message-remote-data-source.service';
|
||||
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
|
||||
import { ok } from 'neverthrow';
|
||||
import { RoomLocalRepository } from '../../data/repository/room/room-local-repository.service';
|
||||
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { Logger } from 'src/app/services/logger/main/service';
|
||||
import { XTracerAsync, TracingType } from 'src/app/services/monitoring/opentelemetry/tracer';
|
||||
@@ -53,7 +53,7 @@ export class SyncAllRoomMessagesService {
|
||||
let clone: MessageTable = message
|
||||
clone.roomId = room.id
|
||||
|
||||
this.messageLocalDataSourceService.findOrUpdate(clone)
|
||||
this.messageLocalDataSourceService.update(clone.$id, clone)
|
||||
|
||||
const me = message.info.find(e => e.memberId == SessionStore.user.UserId && typeof e.deliverAt == 'string' )
|
||||
|
||||
@@ -69,32 +69,27 @@ export class SyncAllRoomMessagesService {
|
||||
}
|
||||
}
|
||||
|
||||
// for(const message of addedItems) {
|
||||
// let clone: MessageTable = message
|
||||
// clone.roomId = room.id
|
||||
for(const message of addedItems) {
|
||||
let clone: MessageTable = message
|
||||
clone.roomId = room.id
|
||||
|
||||
// const me = message.info.find(e => e.memberId == SessionStore.user.UserId && typeof e.deliverAt == 'string' )
|
||||
// if(!me) {
|
||||
// this.MessageSocketRepositoryService.sendDeliverAt({
|
||||
// memberId: SessionStore.user.UserId,
|
||||
// messageId: message.id,
|
||||
// roomId: message.roomId,
|
||||
// requestId: uuidv4()
|
||||
// })
|
||||
// const me = message.info.find(e => e.memberId == SessionStore.user.UserId && typeof e.deliverAt == 'string' )
|
||||
// if(!me) {
|
||||
// this.MessageSocketRepositoryService.sendDeliverAt({
|
||||
// memberId: SessionStore.user.UserId,
|
||||
// messageId: message.id,
|
||||
// roomId: message.roomId,
|
||||
// requestId: uuidv4()
|
||||
// })
|
||||
|
||||
// tracing.addEvent('send delever roomId'+ room.id)
|
||||
// tracing.addEvent('send delever roomId'+ room.id)
|
||||
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
this.messageLocalDataSourceService.createManyMessage(addedItems.reverse())
|
||||
|
||||
|
||||
for(const message of deletedItems) {
|
||||
this.messageLocalDataSourceService.deleteByMessageId(message.id)
|
||||
}
|
||||
|
||||
|
||||
this.messageLocalDataSourceService.insertMany(addedItems.reverse())
|
||||
|
||||
} else {
|
||||
Logger.error('failed to get room message '+room.id)
|
||||
}
|
||||
+5
-5
@@ -1,11 +1,11 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { create } from 'domain';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { RoomRemoteDataSourceService } from '../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomSocketRepositoryService } from '../../data/repository/room/room-socket-repository.service';
|
||||
import { RoomRemoteDataSourceService } from '../../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomSocketRepositoryService } from '../../../data/repository/room/room-socket-repository.service';
|
||||
import { captureAndReraiseAsync } from 'src/app/services/decorators/captureAndReraiseAsync';
|
||||
import { RoomInputDTO } from '../../data/dto/room/roomInputDTO';
|
||||
import { RoomLocalRepository } from '../../data/repository/room/room-local-repository.service';
|
||||
import { RoomInputDTO } from '../../../data/dto/room/roomInputDTO';
|
||||
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
|
||||
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
|
||||
|
||||
@Injectable({
|
||||
@@ -41,7 +41,7 @@ export class CreateRoomUseCaseService {
|
||||
dataObject = result.value
|
||||
}
|
||||
|
||||
const localResult = await this.roomLocalDataSourceService.createRoom(result.value)
|
||||
const localResult = await this.roomLocalDataSourceService.insert(result.value)
|
||||
return localResult.map(e => result.value)
|
||||
} else {
|
||||
tracing.hasError("socket close");
|
||||
+5
-5
@@ -1,9 +1,9 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { captureAndReraiseAsync } from 'src/app/services/decorators/captureAndReraiseAsync';
|
||||
import { isHttpResponse } from 'src/app/services/http.service';
|
||||
import { RoomByIdInputDTO } from '../../data/dto/room/roomByIdInputDTO';
|
||||
import { RoomRemoteDataSourceService } from '../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../data/repository/room/room-local-repository.service';
|
||||
import { RoomByIdInputDTO } from '../../../data/dto/room/roomByIdInputDTO';
|
||||
import { RoomRemoteDataSourceService } from '../../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -23,7 +23,7 @@ export class DeleteRoomUseCaseService {
|
||||
|
||||
if(result.isOk()) {
|
||||
|
||||
const result = await this.roomLocalDataSourceService.deleteRoomById(id)
|
||||
const result = await this.roomLocalDataSourceService.delete(id)
|
||||
// this.messageLiveDataSourceService.sendMessage({
|
||||
// type: 'createRoom',
|
||||
// payload: {a: '5'}
|
||||
@@ -32,7 +32,7 @@ export class DeleteRoomUseCaseService {
|
||||
return result
|
||||
} else if (isHttpResponse(result.error)) {
|
||||
if(result.error.status == 404) {
|
||||
await this.roomLocalDataSourceService.deleteRoomById(id)
|
||||
await this.roomLocalDataSourceService.delete(id)
|
||||
}
|
||||
// this.httpErrorHandle.httpStatusHandle(result.error)
|
||||
}
|
||||
+9
-9
@@ -1,12 +1,12 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { id } from 'date-fns/locale';
|
||||
import { isHttpResponse } from 'src/app/services/http.service';
|
||||
import { roomListDetermineChanges } from '../../data/async/list/rooms/roomListChangeDetector';
|
||||
import { roomMemberListDetermineChanges } from '../../data/async/list/rooms/roomMembersChangeDetector';
|
||||
import { RoomRemoteDataSourceService } from '../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../data/repository/room/room-local-repository.service';
|
||||
import { MemberListLocalRepository } from '../../data/repository/member-list-local-repository.service';
|
||||
import { MemberListMapper } from '../mapper/memberLIstMapper';
|
||||
import { roomListDetermineChanges } from '../../../data/async/list/rooms/roomListChangeDetector';
|
||||
import { roomMemberListDetermineChanges } from '../../../data/async/list/rooms/roomMembersChangeDetector';
|
||||
import { RoomRemoteDataSourceService } from '../../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
|
||||
import { MemberListLocalRepository } from '../../../data/repository/member/member-list-local-repository.service';
|
||||
import { MemberListMapper } from '../../mapper/memberLIstMapper';
|
||||
import { captureAndReraiseAsync } from 'src/app/services/decorators/captureAndReraiseAsync';
|
||||
|
||||
@Injectable({
|
||||
@@ -27,7 +27,7 @@ export class GetRoomByIdUseCaseService {
|
||||
|
||||
if(result.isOk()) {
|
||||
|
||||
const localListRoom = await this.roomLocalDataSourceService.getRoomList()
|
||||
const localListRoom = await this.roomLocalDataSourceService.findAll()
|
||||
if(localListRoom.isOk()) {
|
||||
const object = {
|
||||
chatRoom: result.value.data
|
||||
@@ -35,7 +35,7 @@ export class GetRoomByIdUseCaseService {
|
||||
const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges([object], localListRoom.value)
|
||||
|
||||
for( const roomData of roomsToUpdate) {
|
||||
this.roomLocalDataSourceService.updateRoom(roomData.chatRoom)
|
||||
this.roomLocalDataSourceService.update(roomData.chatRoom.id, roomData.chatRoom)
|
||||
}
|
||||
|
||||
// ============================
|
||||
@@ -59,7 +59,7 @@ export class GetRoomByIdUseCaseService {
|
||||
|
||||
} else if (isHttpResponse(result.error) ) {
|
||||
if(result.error.status == 404) {
|
||||
await this.roomLocalDataSourceService.deleteRoomById(id)
|
||||
await this.roomLocalDataSourceService.delete(id)
|
||||
}
|
||||
// this.httpErrorHandle.httpStatusHandle(result.error)
|
||||
}
|
||||
+7
-7
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { roomListDetermineChanges } from '../../data/async/list/rooms/roomListChangeDetector';
|
||||
import { RoomRemoteDataSourceService } from '../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../data/repository/room/room-local-repository.service';
|
||||
import { roomListDetermineChanges } from '../../../data/async/list/rooms/roomListChangeDetector';
|
||||
import { RoomRemoteDataSourceService } from '../../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
|
||||
import { captureAndReraiseAsync } from 'src/app/services/decorators/captureAndReraiseAsync';
|
||||
import { isHttpResponse } from 'src/app/services/http.service';
|
||||
import { CronJobService } from 'src/app/utils/task-scheduler'
|
||||
@@ -21,14 +21,14 @@ export class GetRoomListUseCaseService {
|
||||
async execute() {
|
||||
const result = await this.roomRemoteDataSourceService.getRoomList()
|
||||
|
||||
const localList = await this.roomLocalDataSourceService.getRoomList()
|
||||
const localList = await this.roomLocalDataSourceService.findAll()
|
||||
|
||||
if(localList.isOk()) {
|
||||
if(result.isOk()) {
|
||||
const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges(result.value.data, localList.value)
|
||||
|
||||
for( const roomData of roomsToInsert) {
|
||||
this.roomLocalDataSourceService.createRoom(roomData.chatRoom)
|
||||
this.roomLocalDataSourceService.insert(roomData.chatRoom)
|
||||
|
||||
if(roomData.chatRoom.expirationDate) {
|
||||
console.log('room expiration date schedule')
|
||||
@@ -38,11 +38,11 @@ export class GetRoomListUseCaseService {
|
||||
}
|
||||
|
||||
for( const roomData of roomsToUpdate) {
|
||||
this.roomLocalDataSourceService.updateRoom(roomData.chatRoom)
|
||||
this.roomLocalDataSourceService.update(roomData.chatRoom.id, roomData.chatRoom)
|
||||
}
|
||||
|
||||
for( const roomData of roomsToDelete) {
|
||||
this.roomLocalDataSourceService.deleteRoomById(roomData.id)
|
||||
this.roomLocalDataSourceService.delete(roomData.id)
|
||||
}
|
||||
|
||||
}
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { UserRemoveListInputDTO } from '../../data/dto/room/userRemoveListInputDTO';
|
||||
import { UserRemoveListInputDTO } from '../../../data/dto/room/userRemoveListInputDTO';
|
||||
import { isHttpResponse } from 'src/app/services/http.service';
|
||||
import { RoomRemoteDataSourceService } from '../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../data/repository/room/room-local-repository.service';
|
||||
import { RoomRemoteDataSourceService } from '../../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -20,10 +20,10 @@ export class RoomLeaveUseCase {
|
||||
const result = await this.roomRemoteDataSourceService.removeMemberFromRoom(data)
|
||||
|
||||
if(result.isOk()) {
|
||||
this.roomLocalDataSourceService.leaveRoom(data.id)
|
||||
this.roomLocalDataSourceService.delete(data.id)
|
||||
} else if (isHttpResponse(result.error)) {
|
||||
if(result.error.status == 404) {
|
||||
await this.roomLocalDataSourceService.deleteRoomById(data.id)
|
||||
await this.roomLocalDataSourceService.delete(data.id)
|
||||
|
||||
}
|
||||
// this.httpErrorHandle.httpStatusHandle(result.error)
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { captureAndReraiseAsync } from 'src/app/services/decorators/captureAndReraiseAsync';
|
||||
import { RoomUpdateInputDTO } from '../../data/dto/room/roomUpdateInputDTO';
|
||||
import { RoomRemoteDataSourceService } from '../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../data/repository/room/room-local-repository.service';
|
||||
import { RoomUpdateInputDTO } from '../../../data/dto/room/roomUpdateInputDTO';
|
||||
import { RoomRemoteDataSourceService } from '../../../data/repository/room/room-remote-repository.service';
|
||||
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -21,7 +21,7 @@ export class UpdateRoomByIdUseCaseService {
|
||||
const result = await this.roomRemoteDataSourceService.updateRoom(data)
|
||||
|
||||
if(result.isOk()) {
|
||||
const localList = await this.roomLocalDataSourceService.getRoomList()
|
||||
const localList = await this.roomLocalDataSourceService.findAll()
|
||||
// const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges([result.value.data], localList)
|
||||
|
||||
// for( const roomData of roomsToUpdate) {
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { z } from 'zod';
|
||||
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
|
||||
import { MemberListLocalRepository } from 'src/app/module/chat/data/repository/member-list-local-repository.service'
|
||||
import { MemberListLocalRepository } from 'src/app/module/chat/data/repository/member/member-list-local-repository.service'
|
||||
|
||||
export const MemberListUPdateStatus = z.object({
|
||||
key: z.string(),
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ export class SocketMessageCreateUseCaseService {
|
||||
console.log('create message', {incomingMessage});
|
||||
|
||||
tracing?.addEvent("Message Create start")
|
||||
const result = await this.messageLocalDataSourceService.createMessage(incomingMessage)
|
||||
const result = await this.messageLocalDataSourceService.insert(incomingMessage)
|
||||
tracing?.addEvent("Message Create end")
|
||||
|
||||
if(result.isOk()) {
|
||||
|
||||
+4
-3
@@ -20,19 +20,20 @@ export class SocketMessageUpdateUseCaseService {
|
||||
|
||||
ParamsValidation(MessageOutPutDataDTOSchema, data, tracing)
|
||||
tracing?.addEvent("Message existe?")
|
||||
const result = await this.messageLocalDataSourceService.messageExist({id: data.id})
|
||||
const result = await this.messageLocalDataSourceService.findOne({id: data.id})
|
||||
|
||||
const incomingMessage = {
|
||||
...data,
|
||||
sending: false
|
||||
}
|
||||
|
||||
if(result.isOk()) {
|
||||
if(result.isOk() && result.value) {
|
||||
|
||||
tracing?.addEvent("Message found")
|
||||
const updateResult = await this.messageLocalDataSourceService.update(result.value.$id, incomingMessage)
|
||||
tracing.setAttribute('outcome', 'success')
|
||||
return updateResult
|
||||
} else {
|
||||
} else if(result.isOk() && !result.value) {
|
||||
tracing?.addEvent("Message not found")
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { SignalRService } from '../../infra/socket/signal-r.service';
|
||||
import { SignalRService } from '../../../infra/socket/signal-r.service';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { UserTypingRemoteRepositoryService } from '../../data/repository/typing/user-typing-live-data-source.service';
|
||||
import { UserTypingRemoteRepositoryService } from '../../../data/repository/typing/user-typing-live-data-source.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -40,7 +40,7 @@ export const MessageTableSchema = z.object({
|
||||
applicationId: z.number().optional(),
|
||||
docId: z.string().optional(),
|
||||
id: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
description: z.string().nullable().optional(),
|
||||
mimeType: z.string().optional()
|
||||
})).optional()
|
||||
})
|
||||
|
||||
@@ -7,7 +7,7 @@ import { v4 as uuidv4 } from 'uuid'
|
||||
import { UserTypingDTO } from '../../data/dto/typing/typingInputDTO';
|
||||
import { MessageOutPutDataDTO } from '../../data/dto/message/messageOutputDTO';
|
||||
import { MessageDeleteInputDTO } from '../../data/dto/message/messageDeleteInputDTO';
|
||||
import { MessageReactionInput } from '../../domain/use-case/message-reaction-by-id-use-case.service';
|
||||
import { MessageReactionInput } from '../../domain/use-case/message/message-reaction-by-id-use-case.service';
|
||||
import { ISignalRInput } from './signal-r.service';
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user