mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 23:27:14 +00:00
Merge pull request #4872 from Infisical/ENG-4113
fix total counts for change requests
This commit is contained in:
@@ -354,16 +354,21 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => {
|
|||||||
(tx || db.replicaNode())(TableName.SecretApprovalRequest)
|
(tx || db.replicaNode())(TableName.SecretApprovalRequest)
|
||||||
.join(TableName.SecretFolder, `${TableName.SecretApprovalRequest}.folderId`, `${TableName.SecretFolder}.id`)
|
.join(TableName.SecretFolder, `${TableName.SecretApprovalRequest}.folderId`, `${TableName.SecretFolder}.id`)
|
||||||
.join(TableName.Environment, `${TableName.SecretFolder}.envId`, `${TableName.Environment}.id`)
|
.join(TableName.Environment, `${TableName.SecretFolder}.envId`, `${TableName.Environment}.id`)
|
||||||
.join(
|
|
||||||
TableName.SecretApprovalPolicyApprover,
|
|
||||||
`${TableName.SecretApprovalRequest}.policyId`,
|
|
||||||
`${TableName.SecretApprovalPolicyApprover}.policyId`
|
|
||||||
)
|
|
||||||
.join(
|
.join(
|
||||||
TableName.SecretApprovalPolicy,
|
TableName.SecretApprovalPolicy,
|
||||||
`${TableName.SecretApprovalRequest}.policyId`,
|
`${TableName.SecretApprovalRequest}.policyId`,
|
||||||
`${TableName.SecretApprovalPolicy}.id`
|
`${TableName.SecretApprovalPolicy}.id`
|
||||||
)
|
)
|
||||||
|
.leftJoin(
|
||||||
|
TableName.SecretApprovalPolicyApprover,
|
||||||
|
`${TableName.SecretApprovalPolicy}.id`,
|
||||||
|
`${TableName.SecretApprovalPolicyApprover}.policyId`
|
||||||
|
)
|
||||||
|
.leftJoin(
|
||||||
|
TableName.UserGroupMembership,
|
||||||
|
`${TableName.SecretApprovalPolicyApprover}.approverGroupId`,
|
||||||
|
`${TableName.UserGroupMembership}.groupId`
|
||||||
|
)
|
||||||
.where({ projectId })
|
.where({ projectId })
|
||||||
.where((qb) => {
|
.where((qb) => {
|
||||||
if (policyId) void qb.where(`${TableName.SecretApprovalPolicy}.id`, policyId);
|
if (policyId) void qb.where(`${TableName.SecretApprovalPolicy}.id`, policyId);
|
||||||
@@ -373,10 +378,10 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => {
|
|||||||
void bd
|
void bd
|
||||||
.where(`${TableName.SecretApprovalPolicyApprover}.approverUserId`, userId)
|
.where(`${TableName.SecretApprovalPolicyApprover}.approverUserId`, userId)
|
||||||
.orWhere(`${TableName.SecretApprovalRequest}.committerUserId`, userId)
|
.orWhere(`${TableName.SecretApprovalRequest}.committerUserId`, userId)
|
||||||
|
.orWhere(`${TableName.UserGroupMembership}.userId`, userId)
|
||||||
)
|
)
|
||||||
.select("status", `${TableName.SecretApprovalRequest}.id`)
|
.select("status", `${TableName.SecretApprovalRequest}.id`)
|
||||||
.groupBy(`${TableName.SecretApprovalRequest}.id`, "status")
|
.groupBy(`${TableName.SecretApprovalRequest}.id`, "status")
|
||||||
.count("status")
|
|
||||||
)
|
)
|
||||||
.select("status")
|
.select("status")
|
||||||
.from("temp")
|
.from("temp")
|
||||||
@@ -499,7 +504,6 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => {
|
|||||||
|
|
||||||
const query = (tx || db.replicaNode())
|
const query = (tx || db.replicaNode())
|
||||||
.select("*")
|
.select("*")
|
||||||
.select(db.raw("count(*) OVER() as total_count"))
|
|
||||||
.from(innerQuery)
|
.from(innerQuery)
|
||||||
.orderBy("createdAt", "desc") as typeof innerQuery;
|
.orderBy("createdAt", "desc") as typeof innerQuery;
|
||||||
|
|
||||||
@@ -519,6 +523,14 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||||
|
const countResult = await (tx || db.replicaNode())
|
||||||
|
.count({ count: "*" })
|
||||||
|
.from(query.clone().as("count_query"))
|
||||||
|
.first();
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||||
|
const totalCount = Number(countResult?.count || 0);
|
||||||
|
|
||||||
const docs = await (tx || db)
|
const docs = await (tx || db)
|
||||||
.with("w", query)
|
.with("w", query)
|
||||||
.select("*")
|
.select("*")
|
||||||
@@ -526,9 +538,6 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => {
|
|||||||
.where("w.rank", ">=", offset)
|
.where("w.rank", ">=", offset)
|
||||||
.andWhere("w.rank", "<", offset + limit);
|
.andWhere("w.rank", "<", offset + limit);
|
||||||
|
|
||||||
// @ts-expect-error knex does not infer
|
|
||||||
const totalCount = Number(docs[0]?.total_count || 0);
|
|
||||||
|
|
||||||
const formattedDoc = sqlNestRelationships({
|
const formattedDoc = sqlNestRelationships({
|
||||||
data: docs,
|
data: docs,
|
||||||
key: "id",
|
key: "id",
|
||||||
|
|||||||
Reference in New Issue
Block a user