Skip to content

Commit 0e31528

Browse files
committed
Remove old time intervals
1 parent 581089d commit 0e31528

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

src/compositions/daily-intervals.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { TimeInterval } from '../entity/time-interval';
22
import { injecStorage } from '../storage/inject-storage';
3-
import { StorageDeserializeParam, StorageParams } from '../storage/storage-params';
3+
import { StorageDeserializeParam } from '../storage/storage-params';
44
import { todayLocalDate } from '../utils/date';
55

66
export async function closeInterval(domain: string | null): Promise<void> {

src/jobs/remove-time-intervals.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { StorageDeserializeParam } from '../storage/storage-params';
2+
import { injecStorage } from '../storage/inject-storage';
3+
import { TimeInterval } from '../entity/time-interval';
4+
import { todayLocalDate } from '../utils/date';
5+
6+
export async function removeOldTimeIntervals() {
7+
const storage = injecStorage();
8+
let timeIntervalList = (await storage.getDeserializeList(
9+
StorageDeserializeParam.TIMEINTERVAL_LIST,
10+
)) as TimeInterval[];
11+
if (timeIntervalList == undefined) timeIntervalList = [];
12+
const arrayToRemove: number[] = [];
13+
timeIntervalList.forEach(interval => {
14+
if (new Date(interval.day) < new Date(todayLocalDate()))
15+
arrayToRemove.push(timeIntervalList.indexOf(interval));
16+
});
17+
18+
arrayToRemove.forEach(index => {
19+
if (index > -1) timeIntervalList.splice(index, 1);
20+
});
21+
22+
await storage.saveIntervalList(timeIntervalList);
23+
}

src/jobs/sheduler.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@ import { StorageParams } from '../storage/storage-params';
44
import { DAY_MINUTES, SECOND, getNextTimeOfDay } from '../utils/time';
55
import { Settings } from '../compositions/settings';
66
import { dailySummaryNotification } from './daily-summary-notification';
7+
import { removeOldTimeIntervals } from './remove-time-intervals';
8+
import { startOfTomorrow } from 'date-fns';
79

810
export enum JobId {
911
DailySummaryNotification = '@alarm/daily-summary-notification',
12+
RemoveOldTimeIntervals = '@alarm/remove-old-time-intervals',
1013
}
1114

1215
export function scheduleJobs(): void {
@@ -17,6 +20,10 @@ export function scheduleJobs(): void {
1720
await dailySummaryNotification();
1821
break;
1922
}
23+
case JobId.RemoveOldTimeIntervals: {
24+
await removeOldTimeIntervals();
25+
break;
26+
}
2027
}
2128
log(`[schedule-jobs] ${alarm.name} finished`);
2229
});
@@ -34,6 +41,11 @@ export async function rescheduleJobs(): Promise<void> {
3441
when: getNextTimeOfDay(dailySummaryNotificationTime * SECOND),
3542
periodInMinutes: DAY_MINUTES,
3643
});
44+
45+
await createAlarmIfMissing(JobId.RemoveOldTimeIntervals, {
46+
when: startOfTomorrow().getTime(),
47+
periodInMinutes: DAY_MINUTES,
48+
});
3749
}
3850

3951
async function createAlarmIfMissing(

0 commit comments

Comments
 (0)