chore: add domain logic
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Body, Controller, Get, Param, Patch, Post, UseInterceptors } from "@nestjs/common";
|
||||
import { ApiHeader, ApiOperation } from "@nestjs/swagger";
|
||||
import { ApiHeader, ApiOperation, ApiTags } from "@nestjs/swagger";
|
||||
|
||||
import { UpdateBusinessDomainDto } from "./DTO/business-domain.dto";
|
||||
import { BusinessSlugParamDto } from "./DTO/business-slug-param.dto";
|
||||
@@ -13,6 +13,7 @@ import { BusinessInterceptor } from "../../core/interceptors/business.intercepto
|
||||
|
||||
@Controller("business")
|
||||
@ApiHeader({ name: "x-business-id", description: "Business ID" })
|
||||
@ApiTags("Business")
|
||||
@UseInterceptors(BusinessInterceptor)
|
||||
export class BusinessesController {
|
||||
constructor(
|
||||
@@ -22,86 +23,43 @@ export class BusinessesController {
|
||||
|
||||
@Get("slug/:slug")
|
||||
@ApiOperation({ summary: "Get business by slug" })
|
||||
async getBusinessBySlug(@Param() params: BusinessSlugParamDto) {
|
||||
getBusinessBySlug(@Param() params: BusinessSlugParamDto) {
|
||||
return this.businessesService.getBusinessBySlug(params.slug);
|
||||
}
|
||||
|
||||
@Patch("settings")
|
||||
@ApiOperation({ summary: "Update business settings" })
|
||||
@AuthGuards()
|
||||
async updateBusinessSettings(@BusinessDec("id") businessId: string, @Body() settingsDto: UpdateBusinessSettingsDto) {
|
||||
updateBusinessSettings(@BusinessDec("id") businessId: string, @Body() settingsDto: UpdateBusinessSettingsDto) {
|
||||
return this.businessesService.updateBusinessSettings(businessId, settingsDto);
|
||||
}
|
||||
|
||||
@Get("settings")
|
||||
@ApiOperation({ summary: "Get business settings" })
|
||||
@AuthGuards()
|
||||
async getBusinessSettings(@BusinessDec("id") businessId: string) {
|
||||
getBusinessSettings(@BusinessDec("id") businessId: string) {
|
||||
return this.businessesService.getBusinessSettings(businessId);
|
||||
}
|
||||
|
||||
// Domain management endpoints - simplified flow
|
||||
@Post("domain")
|
||||
@ApiOperation({ summary: "Update business domain" })
|
||||
@ApiOperation({ summary: "Set/update business domain and get verification instructions" })
|
||||
@AuthGuards()
|
||||
async updateBusinessDomain(@BusinessDec() business: Business, @Body() domainDto: UpdateBusinessDomainDto) {
|
||||
return this.domainVerificationService.updateBusinessDomain(business.id, domainDto);
|
||||
}
|
||||
|
||||
@Get("domain/status")
|
||||
@ApiOperation({ summary: "Get business domain status" })
|
||||
@AuthGuards()
|
||||
async getDomainStatus(@BusinessDec() business: Business) {
|
||||
return this.domainVerificationService.getDomainVerificationStatus(business.id);
|
||||
setDomain(@BusinessDec() business: Business, @Body() domainDto: UpdateBusinessDomainDto) {
|
||||
return this.domainVerificationService.setDomain(business.id, domainDto);
|
||||
}
|
||||
|
||||
@Post("domain/verify")
|
||||
@ApiOperation({ summary: "Initiate domain verification" })
|
||||
@ApiOperation({ summary: "Verify domain ownership and connection" })
|
||||
@AuthGuards()
|
||||
async verifyDomain(@BusinessDec() business: Business) {
|
||||
return this.domainVerificationService.initiateVerification(business.id);
|
||||
}
|
||||
|
||||
@Post("domain/verify/check")
|
||||
@ApiOperation({ summary: "Check domain verification status" })
|
||||
@AuthGuards()
|
||||
async checkVerification(@BusinessDec() business: Business) {
|
||||
verifyDomain(@BusinessDec() business: Business) {
|
||||
return this.domainVerificationService.verifyDomain(business.id);
|
||||
}
|
||||
|
||||
// DNS-specific domain verification endpoints
|
||||
@Post("domain/set-domain")
|
||||
@ApiOperation({ summary: "Set domain and get verification instructions" })
|
||||
@Get("domain/status")
|
||||
@ApiOperation({ summary: "Get current domain status" })
|
||||
@AuthGuards()
|
||||
async setDomainAndGetInstructions(@BusinessDec() business: Business, @Body() domainDto: UpdateBusinessDomainDto) {
|
||||
return this.domainVerificationService.setDomainAndGetVerificationInstructions(business.id, domainDto.domain);
|
||||
}
|
||||
|
||||
@Get("domain/check-dns")
|
||||
@ApiOperation({ summary: "Check DNS verification" })
|
||||
@AuthGuards()
|
||||
async checkDnsVerification(@BusinessDec() business: Business) {
|
||||
return this.domainVerificationService.verifyDnsTxtRecord(business.id);
|
||||
}
|
||||
|
||||
// Admin domain management endpoints
|
||||
@Post("admin/:businessId/domain/verify")
|
||||
@ApiOperation({ summary: "Admin initiate domain verification" })
|
||||
@AuthGuards()
|
||||
async adminVerifyDomain(@Param("businessId") businessId: string) {
|
||||
return this.domainVerificationService.initiateVerification(businessId);
|
||||
}
|
||||
|
||||
@Post("admin/:businessId/domain/verify/check")
|
||||
@ApiOperation({ summary: "Admin check domain verification status" })
|
||||
@AuthGuards()
|
||||
async adminCheckVerification(@Param("businessId") businessId: string) {
|
||||
return this.domainVerificationService.verifyDomain(businessId);
|
||||
}
|
||||
|
||||
@Post("admin/:businessId/domain/check-dns")
|
||||
@ApiOperation({ summary: "Admin check DNS verification" })
|
||||
@AuthGuards()
|
||||
async adminCheckDnsVerification(@Param("businessId") businessId: string) {
|
||||
return this.domainVerificationService.verifyDnsTxtRecord(businessId);
|
||||
getDomainStatus(@BusinessDec() business: Business) {
|
||||
return this.domainVerificationService.getDomainStatus(business.id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user