Send email notifications for table-backed user events #361
Labels
No labels
automated
code-quality
component: admin dashboard
component: backend
component: billing
component: content management
component: faqs
component: game genres
component: game lists
component: game reviews
component: game search
component: games
component: internal notifications
component: platforms
component: security
component: tests
component: user api
component: user badges
component: user blogs
component: user consoles
component: user favorites
component: user friends
component: user notifications
component: user profiles
component: user site notifications
component: user wishlists
component: web design
dependencies
php
priority
high
priority
low
priority
medium
security-hotspot
source: codex
source: sonarqube
status
awaiting feedback
status
backlog
status
done
status
in progress
status
in queue
status
in review
status
needs codex review
status
needs investigation
status
wontfix
type: bug
type: documentation
type: feature
type: improvement
type: regression
type: task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
MyVideoGameList/myvideogamelist.com#361
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The app has a
user_notification_settingstable with opt-in flags for user-facing notification events, but the Laravel rebuild should explicitly audit and wire outgoing email notifications for every event represented by those flags.Some event emails are already implemented, including
friend_added_you,mentioned_in_blog_entry, andmentioned_in_blog_entry_comment. This issue tracks confirming those remain covered while implementing or restoring the missing table-backed notification emails for profile comments, game comments, game-list comments, and previously-participated site-news/blog comment threads.Deferred review-comment scope
The
comment_on_your_reviewflag is intentionally deferred for this issue. The current Laravel rebuild does not have a rebuilt review-comment model/controller/event source to dispatch from, so review-owner comment email dispatch should be handled by a follow-up issue when review comments themselves are rebuilt. This issue still audits the flag and keeps the setting available, but does not create a new review-comment feature.Scope
user_notification_settingsevent flag:comment_on_your_profilepreviously_left_comment_on_gamecomment_for_game_on_listcomment_on_your_review(deferred until a rebuilt review-comment source exists)previously_left_comment_on_reviewfriend_added_youmentioned_in_blog_entrymentioned_in_blog_entry_commentY/Npreference before sending.Acceptance Criteria
friend_added_you,mentioned_in_blog_entry, andmentioned_in_blog_entry_commentcontinue to work and remain covered by regression tests.comment_on_your_profileis enabled.previously_left_comment_on_gameis enabled.comment_for_game_on_listis enabled.comment_on_your_revieware deferred until a rebuilt review-comment event source exists.previously_left_comment_on_reviewis enabled.Test Coverage Required
Notification::fake()for each implemented event, proving opt-in recipients are notified and opt-out recipients are not.vendor/bin/pint --dirtybefore closing the issue.Progress Checklist
user_notification_settingstable exists with per-eventY/Nflagsfriend_added_younotification dispatch existsImplemented and pushed in
6b1f86f(Wire table-backed notification emails).What changed:
user_notification_settingsrows only, matchingYflags, actor/self exclusion, and duplicate-recipient suppression for overlapping rules.comment_on_your_reviewowner dispatch until a rebuilt review-comment event source exists.Verification:
php artisan test --compact tests/Feature/OptionalUserNotificationTest.php-> 8 passed, 44 assertions.vendor/bin/pint --dirty --format agent-> passed.git diff --check-> clean.