Skip to content

Commit f75b132

Browse files
committed
Add weekly report notification reminder
1 parent 82f6fd8 commit f75b132

File tree

8 files changed

+125
-1634
lines changed

8 files changed

+125
-1634
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,7 @@ location_db
4040
# supabase
4141
supabase/supabase/.temp/
4242
supabase/.temp/
43-
supabase/.branches/
43+
supabase/.branches/
44+
45+
46+
.claude

controllers/JobQueueController.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,33 @@ const triggerTestJob = async (req: Request, res: Response): Promise<void> => {
106106
}
107107
}
108108

109+
const triggerWeeklyEmailReminder = async (req: Request, res: Response): Promise<void> => {
110+
try {
111+
const job = await jobQueueService.triggerWeeklyEmailReminder()
112+
res.json({
113+
success: true,
114+
message: 'Weekly email reminder job triggered',
115+
data: {
116+
jobId: job.id,
117+
jobName: job.name
118+
}
119+
})
120+
} catch (error) {
121+
res.status(500).json({
122+
success: false,
123+
error: 'Failed to trigger weekly email reminder',
124+
details: error instanceof Error ? error.message : 'Unknown error'
125+
})
126+
}
127+
}
128+
109129
// Protected routes - require authentication
110130
router.get('/stats', AuthMiddleware.authenticateToken, asyncHandler(getQueueStats))
111131
router.post('/trigger/new-users', AuthMiddleware.authenticateToken, asyncHandler(triggerNewUserCheck))
112132
router.post('/trigger/paid-users', AuthMiddleware.authenticateToken, asyncHandler(triggerPaidUserCheck))
113133
router.post('/trigger/inactive-users', AuthMiddleware.authenticateToken, asyncHandler(triggerInactiveUserCheck))
114134
router.post('/trigger/test', AuthMiddleware.authenticateToken, asyncHandler(triggerTestJob))
135+
router.post('/trigger/weekly-email-reminder', AuthMiddleware.authenticateToken, asyncHandler(triggerWeeklyEmailReminder))
115136

116137
export const JobQueueController = {
117138
router,
@@ -120,4 +141,5 @@ export const JobQueueController = {
120141
triggerPaidUserCheck,
121142
triggerInactiveUserCheck,
122143
triggerTestJob,
144+
triggerWeeklyEmailReminder,
123145
}

middleware/auth.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const TEST_USER = {
2222

2323
const runTestMode = (req: Request, res: Response, next: NextFunction) => {
2424
const authHeader = req.headers.authorization
25-
const token = authHeader && authHeader.startsWith('Bearer ')
25+
const token = authHeader?.startsWith('Bearer ')
2626
? authHeader.substring(7)
2727
: null
2828

@@ -48,7 +48,7 @@ const authenticateTokenImpl = async (req: Request, res: Response, next: NextFunc
4848
}
4949

5050
const authHeader = req.headers.authorization
51-
const token = authHeader && authHeader.startsWith('Bearer ')
51+
const token = authHeader?.startsWith('Bearer ')
5252
? authHeader.substring(7)
5353
: null
5454

0 commit comments

Comments
 (0)