import { Body, Controller, Delete, Get, Inject, Param, Post, Put } from '@nestjs/common'; import { FileService } from '../file/file.service.js'; import { convertStringToNullUndefined } from '../utils.js'; import { ListingsService } from './listings.service.js'; import { WINSTON_MODULE_PROVIDER } from 'nest-winston'; import { Logger } from 'winston'; import { ListingCriteria } from '../models/main.model.js'; import { businesses } from '../drizzle/schema.js'; @Controller('listings/business') export class BusinessListingsController { constructor(private readonly listingsService:ListingsService, @Inject(WINSTON_MODULE_PROVIDER) private readonly logger: Logger) { } @Get(':id') findById(@Param('id') id:string): any { return this.listingsService.findById(id,businesses); } @Get('user/:userid') findByUserId(@Param('userid') userid:string): any { return this.listingsService.findByUserId(userid,businesses); } @Post('search') find(@Body() criteria: ListingCriteria): any { return this.listingsService.findListingsByCriteria(criteria,businesses); } @Post() create(@Body() listing: any){ this.logger.info(`Save Listing`); this.listingsService.createListing(listing,businesses) } @Put() update(@Body() listing: any){ this.logger.info(`Save Listing`); this.listingsService.updateListing(listing.id,listing,businesses) } @Delete(':id') deleteById(@Param('id') id:string){ this.listingsService.deleteListing(id,businesses) } @Get('states/all') getStates(): any { return this.listingsService.getStates(businesses); } }