bizmatch-project/bizmatch-server/src/listings/business-listings.controlle...

51 lines
1.6 KiB
TypeScript

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);
}
}