Importante

viernes, 12 de mayo de 2023

nest insercion en cascada

 voy al dto de createtwit

que se ve asi por ahora

import { IsString } from 'class-validator';

export class CreateTwitDto {
  @IsString() // la propiedad debe existeir y ser de tipo strint
  readonly menssage: string;
 
}


lo arreglo asi

import { IsObject, IsString } from 'class-validator';
import { User } from 'src/modules/users/entities';

export class CreateTwitDto {
  @IsString() // la propiedad debe existeir y ser de tipo strint
  readonly menssage: string;
  // insercion en cascada
  @IsObject()
  readonly user: Partial<User>;
}

ahora en el servicio de twit deberé injectar el repository de usuario

quedando asi

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';
import { InjectRepository } from '@nestjs/typeorm';
import { PaginationQueryDto } from './dto';
import { User } from '../users/entities';

@Injectable()
export class TwitsService {
  constructor(
    @InjectRepository(Twits)
    private readonly twitsRepository: Repository<Twits>,
    @InjectRepository(User)
    private readonly usersRepository: Repository<User>,
  ) {}


ahora modificaremos el metodo create

añado user como parametro tambien

async createTwit({ menssage, user }: CreateTwitDto): Promise<Twits> {
    const twit: Twits = this.twitsRepository.create({ menssage, user });
    return this.twitsRepository.save(twit);
  }


ahora voy al modelo twit einserto la propiedad  user

import { Module } from '@nestjs/common';
import { TwitsController } from './twits.controller';
import { TwitsService } from './twits.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Twits } from './twits.entity';
import { User } from '../users/entities';

@Module({
  imports: [TypeOrmModule.forFeature([Twits, User])],
  controllers: [TwitsController],
  providers: [TwitsService],
})
export class TwitsModule {}



0 comentarios:

Publicar un comentario