Files
dpage-api/src/modules/business/business.controller.ts
T
2026-06-07 10:08:24 +03:30

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