import { inject, injectable } from "tsyringe"; import Item from "../domain/entities/item"; import ItemRepository from "../domain/repositories/item.repository"; import UpdateItemService from "../domain/services/updateItem.service"; import { UpdateItemAttr } from "../domain/types/item.type"; import Result from "../utils/result"; @injectable() export default class UpdateItemServiceImpl implements UpdateItemService { constructor( @inject("Items:ItemRepository") private repository: ItemRepository ) { } async run(payload: UpdateItemAttr): Promise> { const item = await this.repository.update(payload); return item ? Result.success(item) : Result.failure("No se pudo actualizar"); } }