Fix deployments visit URL and date filter (#78)

* Add method to update multiple deployments in single query

* Fix deployments URL visit and date filter

* Clean fixtures data

* Update fixtures data

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
This commit is contained in:
2024-02-20 10:53:42 +05:30
committed by GitHub
co-authored by neeraj
parent c3d1b4f3eb
commit a45fb4c617
14 changed files with 45 additions and 247 deletions
+13
View File
@@ -316,6 +316,19 @@ export class Database {
return Boolean(updateResult.affected);
}
async updateDeploymentsByProjectIds (projectIds: string[], data: DeepPartial<Deployment>): Promise<boolean> {
const deploymentRepository = this.dataSource.getRepository(Deployment);
const updateResult = await deploymentRepository
.createQueryBuilder()
.update(Deployment)
.set(data)
.where('projectId IN (:...projectIds)', { projectIds })
.execute();
return Boolean(updateResult.affected);
}
async addProject (userId: string, organizationId: string, data: DeepPartial<Project>): Promise<Project> {
const projectRepository = this.dataSource.getRepository(Project);
+5 -11
View File
@@ -78,7 +78,9 @@ export class Service {
log(`Found ${records.length} ApplicationDeploymentRecords`);
// Update deployments for which ApplicationDeploymentRecords were returned
await this.updateDeploymentsWithRecordData(records);
if (records.length) {
await this.updateDeploymentsWithRecordData(records);
}
}
this.deployRecordCheckTimeout = setTimeout(() => {
@@ -110,10 +112,7 @@ export class Service {
}, new Set<string>());
// Set old deployments isCurrent to false
await Promise.all(Array.from(productionDeploymentProjectIds).map(
// TODO: Add DB method to update multiple deployments in single query
async (projectId) => this.db.updateDeployment({ projectId }, { isCurrent: false })
));
await this.db.updateDeploymentsByProjectIds(Array.from(productionDeploymentProjectIds), { isCurrent: false });
const recordToDeploymentsMap = deployments.reduce((acc: {[key: string]: Deployment}, deployment) => {
acc[deployment.applicationRecordId] = deployment;
@@ -135,7 +134,7 @@ export class Service {
}
);
log(`Updated deployment deployment ${deployment.id} with URL ${record.attributes.url}`);
log(`Updated deployment ${deployment.id} with URL ${record.attributes.url}`);
});
await Promise.all(deploymentUpdatePromises);
@@ -295,7 +294,6 @@ export class Service {
octokit,
{
project: oldDeployment.project,
isCurrent: true,
branch: oldDeployment.branch,
environment: Environment.Production,
domain: prodBranchDomains[0],
@@ -357,7 +355,6 @@ export class Service {
commitHash: data.commitHash,
commitMessage: data.commitMessage,
environment: data.environment,
isCurrent: data.isCurrent,
status: DeploymentStatus.Building,
applicationRecordId,
applicationRecordData,
@@ -400,7 +397,6 @@ export class Service {
octokit,
{
project,
isCurrent: true,
branch: project.prodBranch,
environment: Environment.Production,
domain: null,
@@ -486,7 +482,6 @@ export class Service {
octokit,
{
project,
isCurrent: project.prodBranch === branch,
branch,
environment: project.prodBranch === branch ? Environment.Production : Environment.Preview,
domain,
@@ -543,7 +538,6 @@ export class Service {
project: oldDeployment.project,
// TODO: Put isCurrent field in project
branch: oldDeployment.branch,
isCurrent: true,
environment: Environment.Production,
domain: oldDeployment.domain,
commitHash: oldDeployment.commitHash,