import { HttpException, Injectable, NotFoundException } from '@nestjs/common';
import { CreatePaysDto } from './dto/create-pays.dto';
import { UpdatePaysDto } from './dto/update-pays.dto';
import { InjectRepository } from '@nestjs/typeorm';
import { Pays } from './entities/pays.entity';
import { Repository } from 'typeorm';

@Injectable()
export class PaysService {
  constructor(
    @InjectRepository(Pays)
    private paysRepository: Repository<Pays>
  ){}
  async create(createPayDto: CreatePaysDto): Promise<Pays> {
    return await this.paysRepository.save(createPayDto)
  }

  async findAll(): Promise<Pays[]> {
    return await this.paysRepository.find();
  }

  async findOne(id: number): Promise<Pays> {
    try {
      return await this.paysRepository.findOneByOrFail({ id });
    } catch {
      throw new NotFoundException('Pays non trouvé');
    }
  }

  async update(id: number, updatePaysDto: UpdatePaysDto): Promise<Pays> {
    const pays = await this.paysRepository.findOneBy({id})
    if (!pays){
      throw new NotFoundException('pays non trouvé')
    }
    Object.assign(pays,updatePaysDto)
    return await this.paysRepository.save(pays)
  }

  async remove(id: number): Promise<void> {
    await this.paysRepository.delete(id)
  }
}
