update: domain verfication service
This commit is contained in:
@@ -62,4 +62,124 @@ export class BusinessesController {
|
||||
getDomainStatus(@BusinessDec() business: Business) {
|
||||
return this.domainVerificationService.getDomainStatus(business.id);
|
||||
}
|
||||
|
||||
@Post("domain/update-dns-records")
|
||||
@ApiOperation({ summary: "Get detailed instructions for updating DNS records" })
|
||||
@AuthGuards()
|
||||
getDetailedDnsInstructions(@BusinessDec() business: Business) {
|
||||
// This endpoint provides detailed DNS setup instructions for various DNS providers
|
||||
if (!business.domain) {
|
||||
return {
|
||||
success: false,
|
||||
message: "No domain configured for this business",
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
domain: business.domain,
|
||||
instructions: {
|
||||
title: "راهنمای تنظیم رکوردهای DNS برای دامنه شما",
|
||||
description: "برای اتصال دامنه خود به سرویس دیزون، لطفا یکی از روشهای زیر را انتخاب کنید:",
|
||||
methods: [
|
||||
{
|
||||
title: "روش A: استفاده از رکورد A (آدرس IP)",
|
||||
description: "این روش برای همه ارائهدهندگان DNS کار میکند و برای دامنه اصلی مناسب است.",
|
||||
steps: [
|
||||
"۱. وارد پنل مدیریت DNS خود شوید",
|
||||
"۲. یک رکورد A جدید ایجاد کنید",
|
||||
"۳. در فیلد Host یا Name، @ را وارد کنید (برای دامنه اصلی)",
|
||||
`۴. در فیلد Value یا Points to، آدرس IP سرور ما را وارد کنید: 194.5.192.20`,
|
||||
"۵. TTL را روی 3600 (یک ساعت) یا کمترین مقدار ممکن تنظیم کنید",
|
||||
"۶. تغییرات را ذخیره کنید",
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "روش B: استفاده از رکورد CNAME (نام مستعار)",
|
||||
description: "این روش برای زیردامنهها مانند www توصیه میشود.",
|
||||
steps: [
|
||||
"۱. وارد پنل مدیریت DNS خود شوید",
|
||||
"۲. یک رکورد CNAME جدید ایجاد کنید",
|
||||
"۳. در فیلد Host یا Name، www را وارد کنید (یا زیردامنه دلخواه)",
|
||||
`۴. در فیلد Value یا Points to، آدرس سرور ما را وارد کنید: app.dzone.danakcorp.com`,
|
||||
"۵. TTL را روی 3600 (یک ساعت) یا کمترین مقدار ممکن تنظیم کنید",
|
||||
"۶. تغییرات را ذخیره کنید",
|
||||
],
|
||||
note: "توجه: برخی ارائهدهندگان DNS اجازه استفاده از CNAME برای دامنه اصلی (@) را نمیدهند. در این صورت از روش A استفاده کنید.",
|
||||
},
|
||||
],
|
||||
providerSpecific: [
|
||||
{
|
||||
provider: "Cloudflare",
|
||||
instructions: [
|
||||
"۱. حالت ابری (پروکسی) را خاموش کنید و فقط از DNS استفاده کنید",
|
||||
"۲. برای دامنه اصلی (@) از رکورد A استفاده کنید",
|
||||
"۳. برای زیردامنه www از رکورد CNAME استفاده کنید",
|
||||
],
|
||||
},
|
||||
{
|
||||
provider: "cPanel",
|
||||
instructions: [
|
||||
"۱. به بخش Zone Editor بروید",
|
||||
"۲. روی دامنه خود کلیک کنید",
|
||||
"۳. برای دامنه اصلی، رکورد A با مقدار 194.5.192.20 اضافه کنید",
|
||||
"۴. برای www، رکورد CNAME با مقدار app.dzone.danakcorp.com اضافه کنید",
|
||||
],
|
||||
},
|
||||
{
|
||||
provider: "سایر ارائهدهندگان",
|
||||
instructions: [
|
||||
"اگر نمیتوانید CNAME برای دامنه اصلی تنظیم کنید، از رکورد A استفاده کنید",
|
||||
"برخی ارائهدهندگان از رکوردهای ANAME یا ALIAS برای دامنه اصلی پشتیبانی میکنند",
|
||||
"اگر در تنظیم رکوردها مشکل دارید، با پشتیبانی ارائهدهنده DNS خود تماس بگیرید",
|
||||
],
|
||||
},
|
||||
],
|
||||
troubleshooting: [
|
||||
"- تغییرات DNS ممکن است بین ۱۵ دقیقه تا ۴۸ ساعت طول بکشد تا در سراسر اینترنت منتشر شود",
|
||||
"- اگر پس از ۴۸ ساعت هنوز مشکل دارید، مطمئن شوید که رکوردها را درست تنظیم کردهاید",
|
||||
"- برای بررسی وضعیت رکوردهای DNS خود میتوانید از ابزارهایی مانند dnschecker.org استفاده کنید",
|
||||
"- اگر همچنان مشکل دارید، با پشتیبانی ما تماس بگیرید",
|
||||
],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@Post("domain/configure-caprover")
|
||||
@ApiOperation({ summary: "Manually configure domain in Caprover (Admin use only)" })
|
||||
@AuthGuards()
|
||||
async manualCaproverConfig(@BusinessDec() business: Business) {
|
||||
if (!business.domain) {
|
||||
return {
|
||||
success: false,
|
||||
message: "No domain configured for this business",
|
||||
};
|
||||
}
|
||||
|
||||
if (!business.isDomainVerified) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Domain must be verified before configuring in Caprover",
|
||||
domain: business.domain,
|
||||
};
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await this.domainVerificationService.configureCaproverDomain(business.domain);
|
||||
|
||||
return {
|
||||
success: result,
|
||||
message: result
|
||||
? `Domain ${business.domain} successfully configured in Caprover`
|
||||
: `Failed to configure domain ${business.domain} in Caprover`,
|
||||
domain: business.domain,
|
||||
};
|
||||
} catch (error: unknown) {
|
||||
return {
|
||||
success: false,
|
||||
message: `Error configuring domain in Caprover: ${error instanceof Error ? error.message : String(error)}`,
|
||||
domain: business.domain,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user