67 lines
2.5 KiB
Plaintext
67 lines
2.5 KiB
Plaintext
# Notification specifications
|
|
|
|
Important cases:
|
|
client viewing ui (was popup in v7) https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3783
|
|
|
|
|
|
SCRATCHPAD IDEAS
|
|
=-=-=-=-=-=-=-=-=-
|
|
|
|
OVERVIEW
|
|
Vast room for improvement over v7 which was byzantine and complicated
|
|
Process to set up new notification on workorder status changed:
|
|
Go to user page, click on notification subscription, click on NEW, select type of notification and additional info, click on save, select or add delivery method
|
|
|
|
Notification system
|
|
-=-=-=-=-=-=-=-=-=-
|
|
Internal workings:
|
|
One enum list of NotificationType for any possible notification that can be processed
|
|
Notify type is divided by actual type and then by actual delivery method
|
|
|
|
|
|
DELIVERY TYPES
|
|
Email
|
|
UI
|
|
(previusly was ayanova memo, but, that's toast now, removing it)
|
|
DELIVERY FORMAT
|
|
Custom templates for each notification set up centrally?
|
|
|
|
|
|
|
|
|
|
Hypothetical sequence of operations for designing raven notification and tie into jobs and processor
|
|
|
|
WidgetStatusChange notification
|
|
- OnChange event triggered in [WIDGETBIZ] with before and after state of widget in question (immediately after save or delete or whatever is of interest)
|
|
- OnChange processor See if any users are subscribed to this event [CENTRAL_NOTIFICATION_CLASS THIS MUST BE SUPER EFFICIENT AS IT WILL BE HAMMERED]
|
|
(events of interest / core central event bus handler of some kind??)
|
|
- CENTRAL_NOTIFICATION_CLASS event of interest should cache in memory events of interest and trigger cache invalidation by [EVENT_OF_INTEREST_CLASS] subscription change
|
|
- If no then bail out early
|
|
- If yes then compares the before and after state of the widget and the given list of events of interest and processes notifications in turn
|
|
- Create a notification event in a table of pending notification events [CENTRAL_NOTIFICATION_CLASS]
|
|
- See v7 schema for ideas
|
|
|
|
Deliver notifications
|
|
- Job triggers and HandleJob is called on [CENTRAL_NOTIFICATION_CLASS] which in turn checks if any events ready to Deliver
|
|
- Hands off NOTIFY_EVENT to deliver one at a time to a [NOTIFICATION_DELIVERY_CLASS] which in turn calls each [NOTIFICATION_DELIVERY_DELIVERY_TYPE-SMPT/POPUP/WHATEVER]
|
|
|
|
|
|
Maintenance
|
|
- [CoreJobNotificationSweeper class] maintains the notifications tables see generator spec for thoughts
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MISC
|
|
=-=-
|
|
|
|
- NOTIFICATION SUBSCRIPTIONS
|
|
- NOTIFICATION DELIVERIES (user or all if manager account)
|
|
|
|
- What is "Slack"?
|
|
- should we tie into it for notifications? |