Files
doneit-web/src/app/module/chat/domain/use-case/socket/socket-message-delete-use-case.service.ts
T
Peter Maquiran ee30dd2d5b add interface
2024-08-27 20:29:57 +01:00

48 lines
1.1 KiB
TypeScript

import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
import { MessageEntitySchema } from 'src/app/core/chat/entity/message';
import { z } from 'zod';
const SocketMessageDeleteOutputSchema = MessageEntitySchema.pick({
id: true,
attachments: true,
canEdit: true,
editedAt: true,
info: true,
isDeleted: true,
message: true,
messageType: true,
oneShot: true,
reactions: true,
receiverId: true,
requireUnlock: true,
roomId: true,
sender: true,
sending: true,
sentAt: true,
})
export type ISocketMessageDeleteOutput = z.infer<typeof SocketMessageDeleteOutputSchema>
@Injectable({
providedIn: 'root'
})
export class SocketMessageDeleteUseCaseService {
constructor(
private messageLocalDataSourceService: MessageLocalDataSourceService
) { }
async execute(input: ISocketMessageDeleteOutput) {
const result = await this.messageLocalDataSourceService.update(input.id, { isDeleted: true})
if(result.isOk()) {
} else {
console.log(result.error)
}
}
}