51 lines
1.6 KiB
TypeScript
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);
|
|
}
|
|
}
|
|
|