mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-15 06:35:21 +00:00
improvement: improve ux and design of secret sidebar/table row
This commit is contained in:
@@ -124,10 +124,35 @@ export const reminderDALFactory = (db: TDbClient) => {
|
||||
return reminders[0] || null;
|
||||
};
|
||||
|
||||
const findSecretReminders = async (secretIds: string[], tx?: Knex) => {
|
||||
const rawReminders = await (tx || db)(TableName.Reminder)
|
||||
.whereIn(`${TableName.Reminder}.secretId`, secretIds)
|
||||
.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",
|
||||
parentMapper: (el) => ({
|
||||
_id: el.id,
|
||||
...RemindersSchema.parse(el)
|
||||
}),
|
||||
childrenMapper: [
|
||||
{
|
||||
key: "userId",
|
||||
label: "recipients" as const,
|
||||
mapper: ({ userId }) => userId
|
||||
}
|
||||
]
|
||||
});
|
||||
return reminders;
|
||||
};
|
||||
|
||||
return {
|
||||
...reminderOrm,
|
||||
findSecretDailyReminders,
|
||||
findUpcomingReminders,
|
||||
findSecretReminder
|
||||
findSecretReminder,
|
||||
findSecretReminders
|
||||
};
|
||||
};
|
||||
|
||||
@@ -372,6 +372,21 @@ export const reminderServiceFactory = ({
|
||||
};
|
||||
};
|
||||
|
||||
const getRemindersForDashboard: TReminderServiceFactory["getRemindersForDashboard"] = async (secretIds) => {
|
||||
// scott we don't need to check permissions/secret existence because these are the
|
||||
// secrets from the dashboard that have already gone through these checks
|
||||
|
||||
const reminders = await reminderDAL.findSecretReminders(secretIds);
|
||||
|
||||
const reminderMap: Record<string, (typeof reminders)[number]> = {};
|
||||
|
||||
reminders.forEach((reminder) => {
|
||||
if (reminder.secretId) reminderMap[reminder.secretId] = reminder;
|
||||
});
|
||||
|
||||
return reminderMap;
|
||||
};
|
||||
|
||||
return {
|
||||
createReminder,
|
||||
getReminder,
|
||||
@@ -379,6 +394,7 @@ export const reminderServiceFactory = ({
|
||||
deleteReminder,
|
||||
deleteReminderBySecretId,
|
||||
batchCreateReminders,
|
||||
createReminderInternal
|
||||
createReminderInternal,
|
||||
getRemindersForDashboard
|
||||
};
|
||||
};
|
||||
|
||||
@@ -103,4 +103,6 @@ export interface TReminderServiceFactory {
|
||||
id: string;
|
||||
created: boolean;
|
||||
}>;
|
||||
|
||||
getRemindersForDashboard: (secretIds: string[]) => Promise<Record<string, TReminder & { recipients: string[] }>>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user