Service

A camada de serviço (Service) trata das regras de negócio. Após as eventuais validações, essa camada solicita ao repositório a manipulação dos dados.

import { Musica } from '../entity/Musica';
import { MusicaRepository } from '../repository/MusicaRepository';

export class MusicaService{

    private musicaRepository: MusicaRepository;

    constructor(){
        this.musicaRepository = new MusicaRepository();
    }

    async criar(musica: Musica): Promise<Musica>{
        return await this.musicaRepository.criar(musica);
    }   
    
    async listar(): Promise<Musica[]>{
        return await this.musicaRepository.listar();
    }   

    async atualizar(id: number, musica: Partial<Musica>): Promise<void>{
        await this.musicaRepository.atualizar(id, musica);
    }   

    async remover(id: number): Promise<boolean> {
        const musica = await this.musicaRepository.pesquisar({ id: id });
        if (!musica) { return false; }
        await this.musicaRepository.remover(musica);
        return true;
    }
}