Repositório
Enquanto a entidade mapeia uma classe para uma tabela, o repositório é responsável por fazer as operações de manipulação de dados. Para cada classe, criamos um repositório, com operações básicas:
import { Musica } from '../entity/Musica';
import { banco } from '../banco';
import { Repository } from 'typeorm';
export class MusicaRepository{
private repositorio: Repository<Musica>;
constructor(){
this.repositorio = banco.getRepository(Musica);
}
async criar(c: Musica): Promise<Musica>{
return await this.repositorio.save(c);
}
async listar(): Promise<Musica[]>{
return await this.repositorio.find();
}
async obter(id: number): Promise<Musica>{
return await this.repositorio.findOneBy({id: id});
}
async pesquisar(musica: Partial<Musica>): Promise<Musica | null>{
return await this.repositorio.findOne({where : musica});
}
async remover(c: Musica): Promise<Musica>{
return await this.repositorio.remove(c);
}
async atualizar(id: number, c: Partial<Musica>): Promise<void>{
await this.repositorio.update(id, c);
}
}