From 4c153f29ccebc32db3ef26f5724739e812ee7bb4 Mon Sep 17 00:00:00 2001 From: shreddedbacon Date: Wed, 12 Feb 2025 10:04:05 +1100 Subject: [PATCH] feat: more filters for deploymentsByFilter --- .../api/src/resources/deployment/resolvers.ts | 17 ++++++++--------- services/api/src/typeDefs.js | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/services/api/src/resources/deployment/resolvers.ts b/services/api/src/resources/deployment/resolvers.ts index 84a81fbc98..5a24e088a1 100644 --- a/services/api/src/resources/deployment/resolvers.ts +++ b/services/api/src/resources/deployment/resolvers.ts @@ -151,7 +151,7 @@ export const getDeploymentsByFilter: ResolverFn = async ( { sqlClientPool, hasPermission, models, keycloakGrant, keycloakUsersGroups, adminScopes } ) => { - const { openshifts, deploymentStatus = ["NEW", "PENDING", "RUNNING", "QUEUED"], month, includeDeleted } = input; + const { openshifts, deploymentStatus = ["NEW", "PENDING", "RUNNING", "QUEUED"], startDate, endDate, includeDeleted } = input; /* use the same mechanism for viewing all projects @@ -181,14 +181,13 @@ export const getDeploymentsByFilter: ResolverFn = async ( queryBuilder = queryBuilder.whereIn('environment.project', userProjectIds); } - // collect builds for a specific year/month - if (month) { - queryBuilder = queryBuilder.andWhere( - knex.raw(`YEAR(deployment.created) = YEAR(STR_TO_DATE(?, '%Y-%m'))`, month), - ) - .andWhere( - knex.raw(`MONTH(deployment.created) = MONTH(STR_TO_DATE(?, '%Y-%m'))`, month), - ); + // collect builds for a specific date range + if (startDate) { + queryBuilder = queryBuilder.where('deployment.created', '>=', input.startDate); + } + + if (endDate) { + queryBuilder = queryBuilder.where('deployment.created', '<=', input.endDate); } if(openshifts) { diff --git a/services/api/src/typeDefs.js b/services/api/src/typeDefs.js index 433f641188..cf5fb26e39 100644 --- a/services/api/src/typeDefs.js +++ b/services/api/src/typeDefs.js @@ -1350,7 +1350,7 @@ const typeDefs = gql` deploymentByRemoteId(id: String): Deployment deploymentByName(input: DeploymentByNameInput): Deployment deploymentsByBulkId(bulkId: String): [Deployment] - deploymentsByFilter(openshifts: [Int], deploymentStatus: [DeploymentStatusType], month: Date, includeDeleted: Boolean): [Deployment] + deploymentsByFilter(openshifts: [Int], deploymentStatus: [DeploymentStatusType], startDate: Date, endDate: Date, includeDeleted: Boolean): [Deployment] taskByTaskName(taskName: String): Task taskByRemoteId(id: String): Task taskById(id: Int): Task