chore: add company request
This commit is contained in:
@@ -1,15 +1,18 @@
|
||||
import { Body, Controller, Delete, Get, Param, Patch, Post, Query, UseInterceptors } from "@nestjs/common";
|
||||
import { ApiOperation } from "@nestjs/swagger";
|
||||
|
||||
import { CompanyListQueryDto } from "./DTO/company-list-query.dto";
|
||||
import { CreateCompanyDto } from "./DTO/create-company.dto";
|
||||
import { CompanyListPublicQueryDto, CompanyListQueryDto } from "./DTO/company-list-query.dto";
|
||||
import { ApproveCompanyRequestDto, CreateCompanyDto, CreateCompanyRequestDto } from "./DTO/create-company.dto";
|
||||
import { UpdateCompanyDto } from "./DTO/update-company.dto";
|
||||
import { CompaniesService } from "./services/companies.service";
|
||||
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
||||
import { BusinessDec } from "../../common/decorators/business.decorator";
|
||||
import { UserDec } from "../../common/decorators/user.decorator";
|
||||
import { ParamDto } from "../../common/DTO/param.dto";
|
||||
import { BusinessInterceptor } from "../../core/interceptors/business.interceptor";
|
||||
import { Business } from "../businesses/entities/business.entity";
|
||||
import { User } from "../users/entities/user.entity";
|
||||
|
||||
@Controller("companies")
|
||||
@UseInterceptors(BusinessInterceptor)
|
||||
export class CompaniesController {
|
||||
@@ -43,6 +46,18 @@ export class CompaniesController {
|
||||
return this.companiesService.getCompaniesList(query, businessId);
|
||||
}
|
||||
|
||||
@Get("list/public")
|
||||
@ApiOperation({ summary: "get companies list (public)" })
|
||||
getCompaniesListPublic(@Query() queryDto: CompanyListPublicQueryDto, @BusinessDec("id") businessId: string) {
|
||||
return this.companiesService.getCompaniesListPublic(queryDto, businessId);
|
||||
}
|
||||
|
||||
@Get("public/:id")
|
||||
@ApiOperation({ summary: "get company by id (public)" })
|
||||
getCompanyByIdPublic(@Param() paramDto: ParamDto, @BusinessDec("id") businessId: string) {
|
||||
return this.companiesService.getCompanyByIdPublic(paramDto.id, businessId);
|
||||
}
|
||||
|
||||
@Get(":id")
|
||||
@AuthGuards()
|
||||
@ApiOperation({ summary: "get company by id" })
|
||||
@@ -56,4 +71,31 @@ export class CompaniesController {
|
||||
toggleStatus(@Param() paramDto: ParamDto, @BusinessDec("id") businessId: string) {
|
||||
return this.companiesService.toggleStatus(paramDto.id, businessId);
|
||||
}
|
||||
|
||||
@Post("/company-requests")
|
||||
@AuthGuards()
|
||||
@ApiOperation({ summary: "submit company registration request (user)" })
|
||||
createCompanyRequest(@Body() createDto: CreateCompanyRequestDto, @UserDec() user: User, @BusinessDec() business: Business) {
|
||||
return this.companiesService.createCompanyRequest(createDto, user, business);
|
||||
}
|
||||
|
||||
@Get("/company-requests/user")
|
||||
@ApiOperation({ summary: "get all company registration requests (user)" })
|
||||
getCompanyRequestsUser(@UserDec("id") userId: string, @BusinessDec("id") businessId: string) {
|
||||
return this.companiesService.getCompanyRequestsUser(userId, businessId);
|
||||
}
|
||||
|
||||
@Get("/company-requests")
|
||||
@AuthGuards()
|
||||
@ApiOperation({ summary: "get all company registration requests (admin)" })
|
||||
getCompanyRequests(@BusinessDec("id") businessId: string) {
|
||||
return this.companiesService.getCompanyRequests(businessId);
|
||||
}
|
||||
|
||||
@Patch("/company-requests/:id/approve")
|
||||
@AuthGuards()
|
||||
@ApiOperation({ summary: "approve/reject company registration request (admin)" })
|
||||
approveCompanyRequest(@Param() paramDto: ParamDto, @Body() approveDto: ApproveCompanyRequestDto, @BusinessDec("id") businessId: string) {
|
||||
return this.companiesService.approveCompanyRequest(paramDto.id, approveDto, businessId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user