Skip to content

Commit

Permalink
added Type schemaNames to types containing the uppercase Names of the…
Browse files Browse the repository at this point in the history
… Report Schemas -fixed some types in retentionpolicy.ts
  • Loading branch information
sgempi committed Jul 1, 2024
1 parent a1838dd commit 34cfd98
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
15 changes: 7 additions & 8 deletions backend/retentionpolicy.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
import { model } from 'mongoose'
import {
AnyState,
ExpenseReport as IExpenseReport,
HealthCareCost as IHealthCareCost,
Travel as ITravel,
User as IUser,
Locale,
ReportType,
reportIsHealthCareCost,
reportIsTravel
reportIsTravel,
schemaNames
} from '../common/types.js'
import i18n from './i18n.js'
import { sendMail } from './mail/mail.js'
import Settings from './models/settings.js'
import User from './models/user.js'

async function getForRetentionPolicy(schema: string, date: Date, state: string) {
async function getForRetentionPolicy(schema: schemaNames, date: Date, state: AnyState) {
return await model(schema).find({ state: state, updatedAt: { $lt: date }, historic: false })
}

Expand All @@ -30,7 +32,7 @@ async function triggerDeletion(retentionSettings: {
deleteApprovedTravelAfterXDaysUnused: number
deleteInWorkReportsAfterXDaysUnused: number
}) {
let deletions = [
let deletions: { schema: schemaNames; state: AnyState; deletionPeriod: number }[] = [
{ schema: 'Travel', state: 'refunded', deletionPeriod: retentionSettings.deleteRefundedAfterXDays },
{ schema: 'Travel', state: 'approved', deletionPeriod: retentionSettings.deleteApprovedTravelAfterXDaysUnused },
{ schema: 'ExpenseReport', state: 'refunded', deletionPeriod: retentionSettings.deleteRefundedAfterXDays },
Expand All @@ -50,7 +52,7 @@ async function triggerDeletion(retentionSettings: {
}
}

async function deleteAny(reports: Array<ITravel | IExpenseReport | IHealthCareCost>, schema: string) {
async function deleteAny(reports: Array<ITravel | IExpenseReport | IHealthCareCost>, schema: schemaNames) {
let result: any
for (let i = 0; i < reports.length; i++) {
result = await model(schema).deleteOne({ _id: reports[i]._id })
Expand All @@ -66,7 +68,7 @@ async function notificationMailForDeletions(
deletionPeriodApprovedTravel: number,
deletionPeriodInWorkReport: number
) {
let notifications = [
let notifications: { schema: schemaNames; state: AnyState; deletionPeriod: number }[] = [
{ schema: 'Travel', state: 'refunded', deletionPeriod: deletionPeriodRefunded },
{ schema: 'Travel', state: 'approved', deletionPeriod: deletionPeriodApprovedTravel },
{ schema: 'ExpenseReport', state: 'refunded', deletionPeriod: deletionPeriodRefunded },
Expand Down Expand Up @@ -157,9 +159,6 @@ export async function retentionPolicy() {
settings.retentionPolicy.deleteInWorkReportsAfterXDaysUnused
)
await triggerDeletion(settings.retentionPolicy)
// await getRefundedForDeletion(settings.retentionPolicy.deleteRefundedAfterXDays)
// await getApprovedForDeletion(settings.retentionPolicy.deleteApprovedTravelAfterXDaysUnused)
// await getInWorkForDeletion(settings.retentionPolicy.deleteInWorkReportsAfterXDaysUnused)
} catch (error) {
console.log('Error in retention policy:', error)
}
Expand Down
2 changes: 2 additions & 0 deletions common/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,8 @@ export const retention = [
] as const
export type RetentionType = (typeof retention)[number]

export type schemaNames = 'Travel' | 'ExpenseReport' | 'HealthCareCost'

export const accesses = [
'user',
'inWork:expenseReport',
Expand Down

0 comments on commit 34cfd98

Please sign in to comment.