code refactor

This commit is contained in:
Peter Maquiran
2024-08-18 15:40:43 +01:00
parent ef12ff439d
commit 29d0a9b55e
39 changed files with 191 additions and 464 deletions
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { filter, map } from 'rxjs/operators';
import { InstanceId } from '../chat-service.service';
import { MessageLiveDataSourceService } from 'src/app/module/chat/data/data-source/message/message-live-signalr-data-source.service'
import { MessageLiveDataSourceService } from 'src/app/module/chat/data/repository/message-live-signalr-data-source.service'
import { MessageEntity } from '../entity/message';
@Injectable({
@@ -1,6 +1,6 @@
import { Injectable } from '@angular/core';
import { filter } from 'rxjs/operators';
import { MessageLiveDataSourceService } from '../../data/data-source/message/message-live-signalr-data-source.service';
import { MessageLiveDataSourceService } from '../../data/repository/message-live-signalr-data-source.service';
@Injectable({
providedIn: 'root'
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { MessageLiveDataSourceService } from 'src/app/module/chat/data/data-source/message/message-live-signalr-data-source.service'
import { MessageLiveDataSourceService } from 'src/app/module/chat/data/repository/message-live-signalr-data-source.service'
import { InstanceId } from '../chat-service.service';
import { filter, map } from 'rxjs/operators';
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { z } from 'zod';
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/data-source/attachment/attachment-remote-data-source.service'
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/data-source/attachment/attachment-local-data-source.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 { convertBlobToDataURL } from 'src/app/utils/ToBase64';
import { Result } from 'neverthrow';
import { Logger } from 'src/app/services/logger/main/service';
@@ -1,7 +1,6 @@
import { Injectable } from '@angular/core';
import { MessageEntity, MessageEntitySchema, } from '../entity/message';
import { MessageRepositoryService } from "src/app/module/chat/data/repository/message-respository.service";
import { AttachmentRepositoryService } from "src/app/module/chat/data/repository/attachment-repository.service";
import { AttachmentLocalDataSource } from "src/app/module/chat/data/repository/attachment-local-repository.service";
import { z } from 'zod';
import { v4 as uuidv4 } from 'uuid';
import { InstanceId } from '../chat-service.service';
@@ -9,7 +8,7 @@ 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/data-source/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../data/repository/message-local-data-source.service';
import { err } from 'neverthrow';
import { MessageTable } from '../../infra/database/dexie/schema/message';
import { MessageMapper } from '../mapper/messageMapper';
@@ -29,8 +28,7 @@ export type MessageInputUseCase = z.infer< typeof MessageInputUseCaseSchema>
export class MessageCreateUseCaseService {
constructor(
private MessageRepositoryService: MessageRepositoryService,
private AttachmentRepositoryService: AttachmentRepositoryService,
private AttachmentLocalRepositoryService: AttachmentLocalDataSource,
private messageLocalDataSourceService: MessageLocalDataSourceService,
private messageLiveSignalRDataSourceService: SignalRService,
) { }
@@ -58,7 +56,7 @@ export class MessageCreateUseCaseService {
if(attachment.source != MessageAttachmentSource.Webtrix) {
this.AttachmentRepositoryService.create({
this.AttachmentLocalRepositoryService.insert({
$messageId: createMessageLocally.value,
file: createDataURL(attachment.file, attachment.mimeType),
fileType: attachment.fileType,
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { z } from 'zod';
import { MessageRepositoryService } from '../../data/repository/message-respository.service';
import { SafeValidateSchema, ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
import { MessageRemoteDataSourceService } from '../../data/repository/message-remote-data-source.service';
export const MessageDeleteInputDTOSchema = z.object({
requestId: z.string().optional(),
@@ -17,7 +17,7 @@ export type MessageDeleteInputDTO = z.infer<typeof MessageDeleteInputDTOSchema>
})
export class MessageDeleteLiveUseCaseService {
constructor(
public repository: MessageRepositoryService
public repository: MessageRemoteDataSourceService
) { }
@SafeValidateSchema(MessageDeleteInputDTOSchema, 'MessageDeleteUseCaseService')
@@ -1,8 +1,8 @@
import { Injectable } from '@angular/core';
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/data-source/attachment/attachment-remote-data-source.service'
import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/repository/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/data-source/attachment/attachment-local-data-source.service'
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/attachment-local-repository.service'
import { MessageAttachmentByMessageIdInput } from './message-attachment-by-message-id.service';
@@ -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/data-source/attachment/attachment-remote-data-source.service'
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/data-source/attachment/attachment-local-data-source.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 { err, Result } from 'neverthrow';
@Injectable({
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { MessageRepositoryService } from '../../data/repository/message-respository.service';
import { object, z } from 'zod';
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
import { MessageRemoteDataSourceService } from '../../data/repository/message-remote-data-source.service';
const MessageReactionInputDTOSchema = z.object({
@@ -20,11 +20,11 @@ export type MessageReactionInput = z.infer< typeof MessageReactionInputDTOSchema
export class MessageReactionUseCaseService {
constructor(
public repository: MessageRepositoryService
public repository: MessageRemoteDataSourceService
) { }
@ValidateSchema(MessageReactionInputDTOSchema)
execute(input: MessageReactionInput) {
return this.repository.reactToMessage(input)
return this.repository.reactToMessageSocket(input)
}
}
@@ -0,0 +1,30 @@
import { Injectable } from '@angular/core';
import { err, ok } from 'neverthrow';
import { SessionStore } from 'src/app/store/session.service';
import { MessageLocalDataSourceService } from '../../data/repository/message-local-data-source.service';
import { MessageRemoteDataSourceService } from '../../data/repository/message-remote-data-source.service';
import { SignalRService } from '../../infra/socket/signal-r.service';
@Injectable({
providedIn: 'root'
})
export class MessageReadAtByIdUseCaseService {
constructor(
private messageRemoteDataSourceService: MessageRemoteDataSourceService,
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.messageLiveSignalRDataSourceService.sendReadAt({roomId, memberId: SessionStore.user.UserId, chatMessageId: result.value.id})
}
return ok(true)
}
return err(false)
}
}
@@ -1,6 +1,5 @@
import { Injectable } from '@angular/core';
import { MessageEntity } from '../entity/message';
import { MessageRepositoryService } from "src/app/module/chat/data/repository/message-respository.service"
import { z } from 'zod';
const MessageInputUseCaseSchema = z.object({
@@ -16,9 +15,7 @@ export type MessageInputUseCase = z.infer< typeof MessageInputUseCaseSchema>
})
export class MessageCreateUseCaseService {
constructor(
private MessageRepositoryService: MessageRepositoryService
) { }
constructor() { }
async execute(input: MessageEntity) {
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { z } from 'zod';
import { MessageRepositoryService } from '../../data/repository/message-respository.service';
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
import { MessageRemoteDataSourceService } from '../../data/repository/message-remote-data-source.service';
const MessageUpdateInputDTOSchema = z.object({
memberId: z.number(),
@@ -20,7 +20,7 @@ export type MessageUpdateInput = z.infer< typeof MessageUpdateInputDTOSchema>
export class MessageUpdateUseCaseService {
constructor(
public repository: MessageRepositoryService
public repository: MessageRemoteDataSourceService
) { }
@ValidateSchema(MessageUpdateInputDTOSchema)
@@ -1,13 +1,12 @@
import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../data/data-source/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../data/repository/message-local-data-source.service';
import { MessageOutPutDataDTO } from '../../data/dto/message/messageOutputDTO';
import { MessageTable } from '../../infra/database/dexie/schema/message';
import { SignalRService } from '../../infra/socket/signal-r.service';
import { InstanceId } from '../chat-service.service';
import { MessageMapper } from '../mapper/messageMapper';
import { v4 as uuidv4 } from 'uuid'
import { AttachmentRepositoryService } from "src/app/module/chat/data/repository/attachment-repository.service";
import { AttachmentLocalDataSource } from '../../data/data-source/attachment/attachment-local-data-source.service';
import { AttachmentLocalDataSource } from '../../data/repository/attachment-local-repository.service';
@Injectable({
providedIn: 'root'
@@ -1,5 +1,5 @@
import { Injectable, Input } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/data-source/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../../data/repository/message-local-data-source.service';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { ParamsValidation } from 'src/app/services/decorators/validate-schema.decorator';
import { MessageOutPutDataDTOSchema } from '../../../data/dto/message/messageOutputDTO';
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/data-source/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../../data/repository/message-local-data-source.service';
import { MessageOutPutDataDTO } from '../../../data/dto/message/messageOutputDTO';
@Injectable({
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/data-source/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../../data/repository/message-local-data-source.service';
import { MessageOutPutDataDTO, MessageOutPutDataDTOSchema } from '../../../data/dto/message/messageOutputDTO';
import { ParamsValidation, SafeValidateSchema, ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
import { MessageInputDTOSchema } from '../../../data/dto/message/messageInputDtO';
@@ -1,8 +1,8 @@
import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../data/data-source/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../data/repository/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/data-source/message/message-remote-data-source.service';
import { MessageRemoteDataSourceService } from '../../data/repository/message-remote-data-source.service';
import { ok } from 'neverthrow';
import { RoomLocalRepository } from '../../data/repository/room-local-repository.service';