coloco un cosnstructir en el servicio de tuiot
import { Injectable, NotFoundException } from '@nestjs/common';
import { Twits } from './twits.entity';
import { CreateTwitDto } from './dto/create-twit.dto/create-twit.dto';
import { UddateTwitDto } from './dto/uddate-twit.dto/uddate-twit.dto';
import { Repository } from 'typeorm';
@Injectable()
export class TwitsService {
constructor(private readonly TwitsRepository: Repository<Twits>) {}
// creo un ejmlo para trabajar
para retornar la información que se encuentra en la base de Datos
// El get lo voy a hacer aincronico y traerá una promesa
async getTwits(): Promise<Twits[]> {
//ahora retornará el await
// find hará un select all de sql, es decir traiem todo
return await this.twitsRepository.find();
creo una funcion asincrona, que regrezará un tipo promesa, Promise esta es una función genérica así que cloco >Twits[] > que es la entidad del modulp que estoy trabajando, esta función como ya estamos conectado a la base de dato traer´pa todos los valores de la tabla de datos. aqui el metodo find es el equivalente a select all de mysql.
para obtener un solo dato se usa el findOne
async getTwit(id: number): Promise<Twits> {
const twit = await this.twitsRepository.findOne({ where: { id } });
if (!twit) {
throw new NotFoundException('Resource Not Found');
}
return twit;
}
Se crea una funcnión asincrónica que recibe el id desde el fronend , esta función devolverá una promeza y el modelo será Twit. entonces espero un awit que usa el repositorio creado y con el método findone extrae solo el dato que necesita, el del id.
si el id no existe genera una excepcion notfound exception 404, pero si existe retorna el dato pedido
para ageregar un nuevo twits se usa
async createTwit({ menssage }: CreateTwitDto): Promise<Twits>{
const twit = this.twitsRepository.create({ menssage });
return this.twitsRepository.save(twit);
}
donde create genera el nuevo mensaje, yse guarada en la contstante twit ahor5a esta se salva y retorna
para actulizar
async updateTwit(id: number, { menssage }: UddateTwitDto): Promise<Twits> {
const twit: Twits = await this.twitsRepository.preload({
id,
menssage,
});
if (!twit) {
throw new NotFoundException('Resource Not Found');
}
twit.menssage = menssage;
return twit;
} }
proload busca y actuliza si existe
0 comentarios:
Publicar un comentario