64 lines
1.9 KiB
TypeScript
64 lines
1.9 KiB
TypeScript
import {
|
|
Controller, Get, Post, Body, Patch, Param,
|
|
Delete, UseGuards, Query
|
|
} from '@nestjs/common';
|
|
import { BusinessService } from './business.service';
|
|
import { SetupBusinessDto } from './dto/setup-business.dto';
|
|
import { SuperAdminAuthGuard } from '../auth/guards/superAdminAuth.guard';
|
|
import { FindBusinessesDto } from './dto/find-businesses.dto';
|
|
import { UpdateBusinessDto } from './dto/update-business.dto';
|
|
import { AdminAuthGuard } from '../auth/guards/adminAuth.guard';
|
|
import { BusinessId } from 'src/common/decorators';
|
|
import { ApiBearerAuth } from '@nestjs/swagger';
|
|
|
|
@Controller()
|
|
@ApiBearerAuth()
|
|
export class BusinessController {
|
|
constructor(private readonly businessService: BusinessService) { }
|
|
|
|
@Get('public/business/:slug')
|
|
getBusinessBySlug(@Param('slug') slug: string) {
|
|
return this.businessService.findBySlugOrFail(slug)
|
|
}
|
|
|
|
@Get('super-admin/business/list')
|
|
@UseGuards(SuperAdminAuthGuard)
|
|
findAll(@Query() dto: FindBusinessesDto) {
|
|
return this.businessService.findAll(dto);
|
|
}
|
|
|
|
@Get('super-admin/business/:id')
|
|
@UseGuards(SuperAdminAuthGuard)
|
|
findOne(@Param('id') id: string) {
|
|
return this.businessService.findByIdOrFail(id);
|
|
}
|
|
|
|
@Patch('super-admin/business/:id')
|
|
@UseGuards(SuperAdminAuthGuard)
|
|
update(@Param('id') id: string, @Body() updateBusinessDto: UpdateBusinessDto) {
|
|
return this.businessService.update(id, updateBusinessDto);
|
|
}
|
|
|
|
@Post('super-admin/business/setup')
|
|
@UseGuards(SuperAdminAuthGuard)
|
|
create(@Body() dto: SetupBusinessDto) {
|
|
return this.businessService.setupAccount(dto);
|
|
}
|
|
|
|
@Delete('super-admin/business/:id')
|
|
@UseGuards(SuperAdminAuthGuard)
|
|
remove(@Param('id') id: string) {
|
|
return this.businessService.hardDelete(id);
|
|
}
|
|
|
|
|
|
// Admin Routes
|
|
|
|
@Get('admin/business/me')
|
|
@UseGuards(AdminAuthGuard)
|
|
me(@BusinessId() businessId: string) {
|
|
return this.businessService.findByIdOrFail(businessId)
|
|
}
|
|
|
|
}
|