import { multerImageOptions } from '@/multer.config' import { Body, Controller, Get, Param, Patch, Post, UploadedFile, UseInterceptors, } from '@nestjs/common' import { FileInterceptor } from '@nestjs/platform-express' import { ApiBody, ApiConsumes } from '@nestjs/swagger' import { CreatePartnerDto, UpdatePartnerDto } from './dto/partner.dto' import { PartnersService } from './partners.service' @Controller('admin/partners') export class PartnersController { constructor(private readonly partnersService: PartnersService) {} @Get() async findAll(): Promise { return this.partnersService.findAll() } @Get(':id') async findOne(@Param('id') id: string): Promise { return this.partnersService.findOne(id) } @Post() @UseInterceptors(FileInterceptor('logo', multerImageOptions)) @ApiConsumes('multipart/form-data') @ApiBody({ schema: { type: 'object', properties: { logo: { type: 'string', format: 'binary' }, }, }, }) async create(@Body() data: CreatePartnerDto, @UploadedFile() logo: any): Promise { return this.partnersService.create(data, logo) } @Patch(':id') @UseInterceptors(FileInterceptor('logo', multerImageOptions)) @ApiConsumes('multipart/form-data') @ApiBody({ schema: { type: 'object', properties: { logo: { type: 'string', format: 'binary' }, }, }, }) async update( @Param('id') id: string, @Body() data: UpdatePartnerDto, @UploadedFile() logo: Express.Multer.File, ): Promise { return this.partnersService.update(id, data, logo) } // @Delete(':id') // async delete(@Param('id') id: string) { // return this.partnersService.delete(id) // } } import type { PartnersServiceCreateResponseDto, PartnersServiceFindAllResponseDto, PartnersServiceFindOneResponseDto, PartnersServiceUpdateResponseDto } from './dto/partners-response.dto'