mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-17 08:35:52 +00:00
feat(secret-reminders): addressed PR suggestions and improvements
This commit is contained in:
@@ -16,7 +16,7 @@ import { ormify, selectAllTableCols, sqlNestRelationships } from "@app/lib/knex"
|
||||
export type TReminderDALFactory = ReturnType<typeof reminderDALFactory>;
|
||||
|
||||
export const reminderDALFactory = (db: TDbClient) => {
|
||||
const reminderOrm = ormify(db, TableName.Reminders);
|
||||
const reminderOrm = ormify(db, TableName.Reminder);
|
||||
|
||||
const getTodayDateRange = () => {
|
||||
const now = new Date();
|
||||
@@ -29,15 +29,11 @@ export const reminderDALFactory = (db: TDbClient) => {
|
||||
const findSecretDailyReminders = async (tx?: Knex) => {
|
||||
const { startOfDay, endOfDay } = getTodayDateRange();
|
||||
|
||||
const rawReminders = await (tx || db)(TableName.Reminders)
|
||||
const rawReminders = await (tx || db)(TableName.Reminder)
|
||||
.whereBetween("nextReminderDate", [startOfDay, endOfDay])
|
||||
.leftJoin(
|
||||
TableName.RemindersRecipients,
|
||||
`${TableName.Reminders}.id`,
|
||||
`${TableName.RemindersRecipients}.reminderId`
|
||||
)
|
||||
.leftJoin<TUsers>(TableName.Users, `${TableName.RemindersRecipients}.userId`, `${TableName.Users}.id`)
|
||||
.leftJoin<TSecretsV2>(TableName.SecretV2, `${TableName.Reminders}.secretId`, `${TableName.SecretV2}.id`)
|
||||
.leftJoin(TableName.ReminderRecipient, `${TableName.Reminder}.id`, `${TableName.ReminderRecipient}.reminderId`)
|
||||
.leftJoin<TUsers>(TableName.Users, `${TableName.ReminderRecipient}.userId`, `${TableName.Users}.id`)
|
||||
.leftJoin<TSecretsV2>(TableName.SecretV2, `${TableName.Reminder}.secretId`, `${TableName.SecretV2}.id`)
|
||||
.leftJoin<TSecretFolders>(
|
||||
TableName.SecretFolder,
|
||||
`${TableName.SecretV2}.folderId`,
|
||||
@@ -50,7 +46,7 @@ export const reminderDALFactory = (db: TDbClient) => {
|
||||
)
|
||||
.leftJoin<TProjects>(TableName.Project, `${TableName.Environment}.projectId`, `${TableName.Project}.id`)
|
||||
.leftJoin<TOrganizations>(TableName.Organization, `${TableName.Project}.orgId`, `${TableName.Organization}.id`)
|
||||
.select(selectAllTableCols(TableName.Reminders))
|
||||
.select(selectAllTableCols(TableName.Reminder))
|
||||
.select(db.ref("email").withSchema(TableName.Users))
|
||||
.select(db.ref("name").withSchema(TableName.Project).as("projectName"))
|
||||
.select(db.ref("id").withSchema(TableName.Project).as("projectId"))
|
||||
@@ -84,30 +80,22 @@ export const reminderDALFactory = (db: TDbClient) => {
|
||||
const futureDate = new Date(startOfDay);
|
||||
futureDate.setDate(futureDate.getDate() + daysAhead);
|
||||
|
||||
const reminders = await (tx || db)(TableName.Reminders)
|
||||
const reminders = await (tx || db)(TableName.Reminder)
|
||||
.where("nextReminderDate", ">=", startOfDay)
|
||||
.where("nextReminderDate", "<=", futureDate)
|
||||
.orderBy("nextReminderDate", "asc")
|
||||
.leftJoin(
|
||||
TableName.RemindersRecipients,
|
||||
`${TableName.Reminders}.id`,
|
||||
`${TableName.RemindersRecipients}.reminderId`
|
||||
)
|
||||
.select(selectAllTableCols(TableName.Reminders))
|
||||
.select(db.ref("userId").withSchema(TableName.RemindersRecipients));
|
||||
.leftJoin(TableName.ReminderRecipient, `${TableName.Reminder}.id`, `${TableName.ReminderRecipient}.reminderId`)
|
||||
.select(selectAllTableCols(TableName.Reminder))
|
||||
.select(db.ref("userId").withSchema(TableName.ReminderRecipient));
|
||||
return reminders;
|
||||
};
|
||||
|
||||
const findSecretReminder = async (secretId: string, tx?: Knex) => {
|
||||
const rawReminders = await (tx || db)(TableName.Reminders)
|
||||
.where(`${TableName.Reminders}.secretId`, secretId)
|
||||
.leftJoin(
|
||||
TableName.RemindersRecipients,
|
||||
`${TableName.Reminders}.id`,
|
||||
`${TableName.RemindersRecipients}.reminderId`
|
||||
)
|
||||
.select(selectAllTableCols(TableName.Reminders))
|
||||
.select(db.ref("userId").withSchema(TableName.RemindersRecipients));
|
||||
const rawReminders = await (tx || db)(TableName.Reminder)
|
||||
.where(`${TableName.Reminder}.secretId`, secretId)
|
||||
.leftJoin(TableName.ReminderRecipient, `${TableName.Reminder}.id`, `${TableName.ReminderRecipient}.reminderId`)
|
||||
.select(selectAllTableCols(TableName.Reminder))
|
||||
.select(db.ref("userId").withSchema(TableName.ReminderRecipient));
|
||||
const reminders = sqlNestRelationships({
|
||||
data: rawReminders,
|
||||
key: "id",
|
||||
|
||||
Reference in New Issue
Block a user