Use Case
import { UseCase } from '@soapjs/soap-express';
import { Inject, Result } from '@soapjs/soap';
@UseCase()
export class CreateComicUseCase {
static readonly Token = 'CreateComicUseCase';
constructor(@Inject(ComicRepository.Token) private readonly repo: ComicRepository) {}
async execute(input: CreateComicInput): Promise<Result<Comic>> {
const created = Comic.create({ id: randomUUID(), ...input });
if (created.isFailure()) return Result.withFailure(created.failure);
const result = await this.repo.add(created.content);
return result.isFailure() ? Result.withFailure(result.failure) : Result.withSuccess(result.content[0]);
}
}Last updated