Paginator & SQL Querries where clauses & city search

This commit is contained in:
2024-07-18 19:02:32 +02:00
parent f88eebe8d3
commit abcde3991d
30 changed files with 850 additions and 421 deletions

View File

@@ -1,15 +1,14 @@
import { Body, Controller, Delete, Get, Inject, Param, Post, Put, Request, UseGuards } from '@nestjs/common';
import { WINSTON_MODULE_PROVIDER } from 'nest-winston';
import { Logger } from 'winston';
import { businesses } from '../drizzle/schema.js';
import { OptionalJwtAuthGuard } from '../jwt-auth/optional-jwt-auth.guard.js';
import { BusinessListingCriteria, JwtUser } from '../models/main.model.js';
import { ListingsService } from './listings.service.js';
import { BusinessListingService } from './business-listing.service.js';
@Controller('listings/business')
export class BusinessListingsController {
constructor(
private readonly listingsService: ListingsService,
private readonly listingsService: BusinessListingService,
@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: Logger,
) {}
@@ -28,19 +27,19 @@ export class BusinessListingsController {
@UseGuards(OptionalJwtAuthGuard)
@Post('find')
find(@Request() req, @Body() criteria: BusinessListingCriteria): any {
return this.listingsService.findBusinessListings(criteria, req.user as JwtUser);
return this.listingsService.searchBusinessListings(criteria, req.user as JwtUser);
}
@UseGuards(OptionalJwtAuthGuard)
@Post('search')
search(@Request() req, @Body() criteria: BusinessListingCriteria): any {
return this.listingsService.searchBusinessListings(criteria.prompt);
}
// @UseGuards(OptionalJwtAuthGuard)
// @Post('search')
// search(@Request() req, @Body() criteria: BusinessListingCriteria): any {
// return this.listingsService.searchBusinessListings(criteria.prompt);
// }
@Post()
create(@Body() listing: any) {
this.logger.info(`Save Listing`);
return this.listingsService.createListing(listing, businesses);
return this.listingsService.createListing(listing);
}
@Put()
update(@Body() listing: any) {
@@ -49,10 +48,10 @@ export class BusinessListingsController {
}
@Delete(':id')
deleteById(@Param('id') id: string) {
this.listingsService.deleteListing(id, businesses);
this.listingsService.deleteListing(id);
}
@Get('states/all')
getStates(): any {
return this.listingsService.getStates(businesses);
return this.listingsService.getStates();
}
}