UI Enhancements in IT Service Request, Announcements, Workforce and notification fixes
This commit is contained in:
@@ -38,11 +38,17 @@ Deno.serve(async (req) => {
|
||||
})
|
||||
}
|
||||
|
||||
// Optional Idempotency (if you pass notification_id inside the data payload)
|
||||
// Idempotency: if notification_id is provided, use try_mark_notification_pushed
|
||||
// to ensure at-most-once delivery even under concurrent edge-function invocations.
|
||||
if (payload.data && payload.data.notification_id) {
|
||||
const { data: markData, error: markErr } = await supabase
|
||||
.rpc('try_mark_notification_pushed', { p_notification_id: payload.data.notification_id })
|
||||
|
||||
|
||||
if (markErr) {
|
||||
console.error('try_mark_notification_pushed RPC error, skipping to be safe:', markErr)
|
||||
return new Response('Idempotency check failed', { status: 200, headers: corsHeaders })
|
||||
}
|
||||
|
||||
if (markData === false) {
|
||||
console.log('Notification already pushed, skipping:', payload.data.notification_id)
|
||||
return new Response('Already pushed', { status: 200, headers: corsHeaders })
|
||||
|
||||
Reference in New Issue
Block a user