fix: keep daily brief independent from warning checks
This commit is contained in:
@@ -77,6 +77,16 @@ async function callNotificationEndpoint(path) {
|
||||
return body;
|
||||
}
|
||||
|
||||
async function callNotificationEndpointSafely(path) {
|
||||
try {
|
||||
await callNotificationEndpoint(path);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error(formatWorkerError(error));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function formatWorkerError(error) {
|
||||
if (error?.cause?.code === "ECONNREFUSED") {
|
||||
return [
|
||||
@@ -91,17 +101,19 @@ function formatWorkerError(error) {
|
||||
async function tick() {
|
||||
if (isRunningTick) return;
|
||||
isRunningTick = true;
|
||||
const now = Date.now();
|
||||
const warningIntervalMs = warningIntervalMinutes * 60_000;
|
||||
|
||||
try {
|
||||
const now = Date.now();
|
||||
const warningIntervalMs = warningIntervalMinutes * 60_000;
|
||||
if (now - lastWarningCheckAt >= warningIntervalMs) {
|
||||
lastWarningCheckAt = now;
|
||||
await callNotificationEndpoint("/api/notifications/check");
|
||||
await callNotificationEndpointSafely("/api/notifications/check");
|
||||
}
|
||||
|
||||
const warsawTime = getWarsawDateParts();
|
||||
if (isAtOrAfterTime(warsawTime.time, morningBriefTime) && lastMorningBriefDate !== warsawTime.dateKey) {
|
||||
await callNotificationEndpoint("/api/notifications/daily-brief");
|
||||
const sentBrief = await callNotificationEndpointSafely("/api/notifications/daily-brief");
|
||||
if (!sentBrief) return;
|
||||
lastMorningBriefDate = warsawTime.dateKey;
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user