// comment_on_approve — docs TRIGGER on `comments` (update). When a comment // transitions INTO "approved", publish it to the public `comments-feed` topic // so post pages can show it live over SSE. (Comments are public once approved.) let ev = ctx.event.docs; if ev == () { return; } let data = ev.data; if data == () { return; } let was = if ev.prev_data == () { () } else { ev.prev_data.status }; let became_approved = data.status == "approved" && was != "approved"; if !became_approved { return; } pubsub::publish_durable("comments-feed", #{ post_id: data.post_id, post_slug: data.post_slug, author_name: data.author_name, // already HTML-escaped at write time body: data.body, // already HTML-escaped at write time created_at: data.created_at, }); log::info("published approved comment", #{ post: data.post_id });