Store deployer data on auction completion

This commit is contained in:
Adw8 2024-10-17 16:43:12 +05:30 committed by IshaVenikar
parent b15d998ed2
commit ae20f171a1

View File

@ -175,7 +175,7 @@ export class Service {
applicationDeploymentRequestId: record.attributes.request, applicationDeploymentRequestId: record.attributes.request,
})), })),
relations: { relations: {
project: true, deployer: true,
}, },
order: { order: {
createdAt: 'DESC', createdAt: 'DESC',
@ -206,22 +206,6 @@ export class Service {
await this.db.updateDeploymentById(deployment.id, deployment); await this.db.updateDeploymentById(deployment.id, deployment);
const baseDomains = deployment.project.baseDomains || [];
if (!baseDomains.includes(baseDomain)) {
baseDomains.push(baseDomain);
}
// Release deployer funds on successful deployment
if (!deployment.project.fundsReleased) {
const fundsReleased = await this.releaseDeployerFundsByProjectId(deployment.projectId);
await this.db.updateProjectById(deployment.projectId, {
baseDomains,
fundsReleased,
});
}
log( log(
`Updated deployment ${deployment.id} with URL ${record.attributes.url}`, `Updated deployment ${deployment.id} with URL ${record.attributes.url}`,
); );
@ -320,9 +304,41 @@ export class Service {
// deployers // deployers
// }); // });
for (const deployer of deployers) { const deployerRecords = await this.laconicRegistry.getAuctionWinningDeployerRecords(project!.auctionId!);
log(`Creating deployment for deployer LRN ${deployer}`);
await this.createDeploymentFromAuction(project, deployer.names[0]); if (!deployerRecords) {
log(`No winning deployer for auction ${project!.auctionId}`);
} else {
const deployerLrns = [];
const deployerIds = [];
for (const record of deployerRecords) {
const deployerId = record.id;
const deployerLrn = record.names[0]
const deployerApiUrl = record.attributes.apiUrl;
deployerIds.push(deployerId);
deployerLrns.push(deployerLrn);
const deployerData = {
deployerId,
deployerLrn,
deployerApiUrl,
};
// Store the deployer in the DB
await this.db.addDeployer(deployerData);
}
// Update project with deployer LRNs
await this.db.updateProjectById(project.id!, {
deployerLrns
});
for (const deployer of deployerIds) {
log(`Creating deployment for deployer LRN ${deployer}`);
await this.createDeploymentFromAuction(project, deployer);
}
} }
} }
} }
@ -665,7 +681,7 @@ export class Service {
async createDeploymentFromAuction( async createDeploymentFromAuction(
project: DeepPartial<Project>, project: DeepPartial<Project>,
deployerLrn: string deployerId: string
): Promise<Deployment> { ): Promise<Deployment> {
const octokit = await this.getOctokit(project.ownerId!); const octokit = await this.getOctokit(project.ownerId!);
const [owner, repo] = project.repository!.split('/'); const [owner, repo] = project.repository!.split('/');
@ -691,6 +707,9 @@ export class Service {
const applicationRecordId = record.id; const applicationRecordId = record.id;
const applicationRecordData = record.attributes; const applicationRecordData = record.attributes;
const deployer = await this.db.getDeployerById(deployerId);
const deployerLrn = deployer!.deployerLrn
// Create deployment with prod branch and latest commit // Create deployment with prod branch and latest commit
const deploymentData = { const deploymentData = {
project, project,
@ -701,7 +720,7 @@ export class Service {
commitMessage: latestCommit.commit.message, commitMessage: latestCommit.commit.message,
}; };
const newDeployment = await this.createDeploymentFromData(project.ownerId!, deploymentData, deployerLrn, applicationRecordId, applicationRecordData); const newDeployment = await this.createDeploymentFromData(project.ownerId!, deploymentData, deployerId, applicationRecordId, applicationRecordData);
const environmentVariablesObj = await this.getEnvVariables(project!.id!); const environmentVariablesObj = await this.getEnvVariables(project!.id!);
// To set project DNS // To set project DNS