HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/dev/shahnamag/back-end/src/person/person.controller.ts
import { Controller, Get, Post, Body, Patch, Param, Delete, HttpException, HttpStatus } from '@nestjs/common';
import { PersonService } from './person.service';
import { CreatePersonDto } from './dto/create-person.dto';
import { UpdatePersonDto } from './dto/update-person.dto';
import { Public } from 'src/user/auth.guard';

@Controller('person')
export class PersonController {
  constructor(private readonly personService: PersonService) {}

  @Post()
  create(@Body() createPersonDto: CreatePersonDto) {
    return this.personService.create(createPersonDto);
  }

  @Public()
  @Get()
  async findAll() {
    let persons = await this.personService.findAll().catch(error => error);
    if(persons instanceof Error)
      throw new HttpException({error: 500, message: persons.message}, HttpStatus.INTERNAL_SERVER_ERROR);

    persons.forEach(person => person.cats = person.cats?.split(',').map(cat => +cat)) || []
    return {data: persons, error: 0};
  }

  @Get(':id')
  findOne(@Param('id') id: string) {
    return this.personService.findOne(+id);
  }

  @Patch(':id')
  async update(@Param('id') id: string, @Body() updatePersonDto: UpdatePersonDto) {
    let person = await this.personService.findOne(+id).catch(error => error);
    if(person instanceof Error)
      throw new HttpException({}, HttpStatus.INTERNAL_SERVER_ERROR);
    if(!person)
      throw new HttpException({}, HttpStatus.NOT_FOUND);
    return this.personService.update(+id, updatePersonDto);
  }

  @Delete(':id')
  remove(@Param('id') id: string) {
    return this.personService.remove(+id);
  }
}