From 82c4b716943c743d48ebe892e07a32ab2ecd542d Mon Sep 17 00:00:00 2001 From: IshaVenikar Date: Thu, 30 Jan 2025 16:13:28 +0530 Subject: [PATCH] Use oldest custom domain in deployment requests --- packages/backend/src/database.ts | 19 +++++++++++++++++++ packages/backend/src/service.ts | 10 +++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/database.ts b/packages/backend/src/database.ts index d91f2ec4..d35f1fad 100644 --- a/packages/backend/src/database.ts +++ b/packages/backend/src/database.ts @@ -603,6 +603,25 @@ export class Database { return domains; } + async getOldestDomainByProjectId( + projectId: string, + ): Promise { + const domainRepository = this.dataSource.getRepository(Domain); + + const domains = await domainRepository.find({ + where: { + project: { + id: projectId + }, + }, + order: { + createdAt: 'ASC' + } + }); + + return domains; + } + async getLatestDNSDataByProjectId( projectId: string, ): Promise { diff --git a/packages/backend/src/service.ts b/packages/backend/src/service.ts index d59052d6..bd14804b 100644 --- a/packages/backend/src/service.ts +++ b/packages/backend/src/service.ts @@ -663,6 +663,14 @@ export class Service { const address = await this.getAddress(); const { repo, repoUrl } = await getRepoDetails(octokit, data.project.repository, data.commitHash); const environmentVariablesObj = await this.getEnvVariables(data.project!.id!); + + // If a custom domain is present then use that as the DNS in the deployment request + const domain = await this.db.getOldestDomainByProjectId(data.projectId!); + let dns: string | undefined = undefined; + if (domain) { + dns = domain[0].name; + } + // To set project DNS if (data.environment === Environment.Production) { // On deleting deployment later, project DNS deployment is also deleted @@ -690,7 +698,7 @@ export class Service { lrn: deployer!.deployerLrn!, apiUrl: deployer!.deployerApiUrl!, environmentVariables: environmentVariablesObj, - dns: `${newDeployment.project.name}-${newDeployment.id}`, + dns: dns || `${newDeployment.project.name}-${newDeployment.id}`, payment: data.project.txHash, auctionId: data.project.auctionId, requesterAddress: address,