mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 11:27:07 +00:00
Fix the query
This commit is contained in:
@@ -25,34 +25,29 @@ export const pkiAcmeChallengeDALFactory = (db: TDbClient) => {
|
|||||||
|
|
||||||
if (updatedAuths.length > 0) {
|
if (updatedAuths.length > 0) {
|
||||||
// Find all the orders that are involved in the challenge validation
|
// Find all the orders that are involved in the challenge validation
|
||||||
const involvedOrderIds = await (tx || db)(TableName.PkiAcmeOrder)
|
const involvedOrderIds = (tx || db)({ o: TableName.PkiAcmeOrder })
|
||||||
.distinct("id")
|
.distinct("o.id")
|
||||||
.join(TableName.PkiAcmeOrderAuth, `${TableName.PkiAcmeOrder}.id`, `${TableName.PkiAcmeOrderAuth}.orderId`)
|
.join({ oa: TableName.PkiAcmeOrderAuth }, "o.id", "oa.orderId")
|
||||||
.join(TableName.PkiAcmeAuth, `${TableName.PkiAcmeOrderAuth}.authId`, `${TableName.PkiAcmeAuth}.id`)
|
.join({ a: TableName.PkiAcmeAuth }, "oa.authId", `a.id`)
|
||||||
.whereIn(
|
.whereIn(
|
||||||
`${TableName.PkiAcmeAuth}.id`,
|
"a.id",
|
||||||
updatedAuths.map((auth) => auth.id)
|
updatedAuths.map((auth) => auth.id)
|
||||||
)
|
);
|
||||||
.as("involvedOrderIds");
|
|
||||||
// Update status for pending orders that have all auths valid
|
// Update status for pending orders that have all auths valid
|
||||||
await (tx || db)(TableName.PkiAcmeOrder)
|
await (tx || db)(TableName.PkiAcmeOrder)
|
||||||
.whereIn("id", (qb) => {
|
.whereIn("id", (qb) => {
|
||||||
qb.select("id")
|
qb.select("o2.id")
|
||||||
.from(TableName.PkiAcmeOrder)
|
.from({ o2: TableName.PkiAcmeOrder })
|
||||||
.join(TableName.PkiAcmeOrderAuth, `${TableName.PkiAcmeOrder}.id`, `${TableName.PkiAcmeOrderAuth}.orderId`)
|
.join({ oa2: TableName.PkiAcmeOrderAuth }, "o2.id", "oa2.orderId")
|
||||||
.join(TableName.PkiAcmeAuth, `${TableName.PkiAcmeOrderAuth}.authId`, `${TableName.PkiAcmeAuth}.id`)
|
.join({ a2: TableName.PkiAcmeAuth }, "oa2.authId", "a2.id")
|
||||||
.groupBy(`${TableName.PkiAcmeOrder}.id`)
|
.groupBy("o2.id")
|
||||||
// All auths should be valid for the order to be ready
|
// All auths should be valid for the order to be ready
|
||||||
.havingRaw(
|
.havingRaw("SUM(CASE WHEN a2.status = ? THEN 1 ELSE 0 END) = COUNT(DISTINCT a2.id)", [
|
||||||
"SUM(CASE WHEN :authTable:.status = :authStatus THEN 1 ELSE 0 END) = COUNT(DISTINCT :authTable:.id)",
|
AcmeAuthStatus.Valid
|
||||||
{
|
])
|
||||||
authTable: TableName.PkiAcmeAuth,
|
|
||||||
authStatus: AcmeAuthStatus.Valid
|
|
||||||
}
|
|
||||||
)
|
|
||||||
// Only update orders that are pending
|
// Only update orders that are pending
|
||||||
.where(`${TableName.PkiAcmeOrder}.status`, AcmeOrderStatus.Pending)
|
.where("o2.status", AcmeOrderStatus.Pending)
|
||||||
.whereIn(`${TableName.PkiAcmeOrder}.id`, involvedOrderIds);
|
.whereIn("o2.id", involvedOrderIds);
|
||||||
})
|
})
|
||||||
.update({ status: AcmeOrderStatus.Ready });
|
.update({ status: AcmeOrderStatus.Ready });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user