fix: the bug in the payment service

This commit is contained in:
Mahyargdz
2025-05-21 10:06:29 +03:30
parent 858f55bb0b
commit 9b3b5b41d7
10 changed files with 454 additions and 103 deletions
@@ -1,10 +1,12 @@
import { Body, Controller, Get, Param, Post } from "@nestjs/common";
import { ApiOperation } from "@nestjs/swagger";
import { UpdateBusinessDomainDto, VerifyDomainDto } from "./DTO/business-domain.dto";
import { BusinessSlugParamDto } from "./DTO/business-slug-param.dto";
import { Business } from "./entities/business.entity";
import { BusinessesService } from "./services/businesses.service";
import { DomainVerificationService } from "./services/domain-verification.service";
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
import { BusinessDec } from "../../common/decorators/business.decorator";
@Controller("business")
@@ -15,37 +17,74 @@ export class BusinessesController {
) {}
@Get("slug/:slug")
@ApiOperation({ summary: "Get business by slug" })
async getBusinessBySlug(@Param() params: BusinessSlugParamDto) {
return this.businessesService.getBusinessBySlug(params.slug);
}
@Post()
// Domain management endpoints
@Post("domain")
@ApiOperation({ summary: "Update business domain" })
@AuthGuards()
async updateBusinessDomain(@BusinessDec() business: Business, @Body() domainDto: UpdateBusinessDomainDto) {
return this.domainVerificationService.updateBusinessDomain(business.id, domainDto);
}
@Get("status")
@Get("domain/status")
@ApiOperation({ summary: "Get business domain status" })
@AuthGuards()
async getDomainStatus(@BusinessDec() business: Business) {
return this.domainVerificationService.getDomainVerificationStatus(business.id);
}
@Post("verify")
@Post("domain/verify")
@ApiOperation({ summary: "Initiate domain verification" })
@AuthGuards()
async verifyDomain(@BusinessDec() business: Business, @Body() verifyDto: VerifyDomainDto) {
return this.domainVerificationService.initiateVerification(business.id, verifyDto);
}
@Post("verify/check")
@Post("domain/verify/check")
@ApiOperation({ summary: "Check domain verification status" })
@AuthGuards()
async checkVerification(@BusinessDec() business: Business) {
return this.domainVerificationService.verifyDomain(business.id);
}
@Post("admin/:businessId/verify")
// DNS-specific domain verification endpoints
@Post("domain/set-domain")
@ApiOperation({ summary: "Set domain and get verification instructions" })
@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, @Body() verifyDto: VerifyDomainDto) {
return this.domainVerificationService.initiateVerification(businessId, verifyDto);
}
@Post("admin/:businessId/verify/check")
@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);
}
}