-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IBX-7057: Provided Notifications API #1
Merged
webhdx
merged 11 commits into
main
from
IBX-7057-Create-ibexa/notifications-package-and-main-API-for-sending-notifications
Nov 21, 2023
Merged
IBX-7057: Provided Notifications API #1
webhdx
merged 11 commits into
main
from
IBX-7057-Create-ibexa/notifications-package-and-main-API-for-sending-notifications
Nov 21, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
webhdx
changed the title
IBX-7057: Cleaned up package/configuration files
IBX-7057: Provided Notifications API
Nov 15, 2023
webhdx
force-pushed
the
IBX-7057-Create-ibexa/notifications-package-and-main-API-for-sending-notifications
branch
from
November 15, 2023 12:36
35ef2de
to
33d3491
Compare
kisztof
approved these changes
Nov 15, 2023
alongosz
reviewed
Nov 15, 2023
Co-authored-by: Andrew Longosz <alongosz@users.noreply.github.com>
Co-authored-by: Andrew Longosz <alongosz@users.noreply.github.com>
konradoboza
reviewed
Nov 15, 2023
alongosz
approved these changes
Nov 15, 2023
konradoboza
approved these changes
Nov 21, 2023
src/bundle/DependencyInjection/Configuration/Parser/NotificationsConfigParser.php
Outdated
Show resolved
Hide resolved
alongosz
approved these changes
Nov 21, 2023
…onsConfigParser.php Co-authored-by: Konrad Oboza <konrad.oboza@ibexa.co>
webhdx
deleted the
IBX-7057-Create-ibexa/notifications-package-and-main-API-for-sending-notifications
branch
November 21, 2023 12:02
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
v4.6
NotificationService
It's the core of this feature. It exposes PHP API for sending system and user notifications. It uses
symfony/notifier
internally but I provided our own abstraction just in case. It offers great flexibility on how Notifications can be delivered. We can route all Admin UI flash messages via specific Notifications API channel and make them appear in the browser OR let users decide if they want specific Admin notification to be also delivered to Slack or e-mail.Symfony Notifier can also take advantage of the Message Bus and we can send notifications asynchronously, unblocking requests from dealing with SMTP servers or APIs.
ChannelSubscription
andSubscriptionResolver
Since we want to offer flexibility and we have a few notification channels already, I made a simple configuration to decide which Notification goes where. Configuration should be only used for system notifications or things from which the user can't opt out. I assume in the future we'll let users subscribe to only specific types of notifications. This is where
ChainSubscriptionResolver
comes into place - it can resolve subscriptions from multiple resolvers. I have different data sources in mind - i.e. there will be a new Resolver reading subscriptions from User Preferences.Example configuration
The configuration is siteaccess aware and single notification can be routed to multiple channels.
Checklist:
@ibexa/engineering
).