fei / notification-common
Flash Notification - Common components
Installs: 8 987
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 23
Forks: 0
Open Issues: 0
pkg:composer/fei/notification-common
Requires
- php: >=7.0
- doctrine/common: ~2.7.0
- fei/entities: ~1.1.0
- league/fractal: ^0.14.0
- objective-php/gateway: ^1.0.0
- zendframework/zend-validator: ^2.10
Requires (Dev)
- codeception/codeception: ^2.2
- jakub-onderka/php-parallel-lint: ^0.9.2
- phpmd/phpmd: ^2.6
- phpro/grumphp: ^0.11.1
- sebastian/phpcpd: ^3.0
- squizlabs/php_codesniffer: ^2.7
README
Table of contents
Entities
Notification
| Properties | Type | Required | Default value |
|---|---|---|---|
| id | integer |
No | |
| createdAt | datetime |
No | Now() |
| origin | string |
Yes | |
| recipient | string |
Yes | |
| event | string |
Yes | |
| message | string |
Yes | |
| type | integer |
No | 1 |
| status | integer |
No | 0 |
| parentNotificationId | integer |
No | 0 |
| context | json |
No | |
| action | json |
No |
originis a string representing the origin of the notificationrecipientis a string representing the recipient of the notificationeventis a string representing the event linked to the notificationmessageis a string indicating the messagetypeis an integer representing the type of the notification. 1 : Info, 2 : Warningstatusis an integer representing the status of the notification. 0 : Unread, 1 : Read, 2 : AcknowledgedparentNotificationIdis an integer representing the parent notificationcontextis a jsonactionis a json
Android alert entity
| Properties | Type | Required |
|---|---|---|
| notification | Notification |
Yes |
| message | Message |
Yes |
messageis a Message (described below) indicating the message
Message (Android alert)
| Properties | Type | Required |
|---|---|---|
| data | array |
No |
| token | string |
No |
| topic | string |
No |
| condition | string |
No |
| notification | Android\Notification |
Yes |
Android\Notification (Android alert)
| Properties | Type | Required |
|---|---|---|
| title | string |
Yes |
| body | string |
Yes |
Email alert entity
| Properties | Type | Required |
|---|---|---|
| notification | Notification |
Yes |
string |
Yes | |
| subject | string |
Yes |
| content | string |
Yes |
emailis a string representing the email recipientsubjectis a string indicating the subject of the emailcontentis a string representing the content of the email
SMS alert entity
| Properties | Type | Required |
|---|---|---|
| notification | Notification |
Yes |
| message | Message |
Yes |
messageis a Message (described below) indicating the message
Message (SMS alert)
| Properties | Type |
|---|---|
| from | string |
| recipients | array |
| content | string |
Contribution
As FEI Service, designed and made by OpCoding. The contribution workflow will involve both technical teams. Feel free to contribute, to improve features and apply patches, but keep in mind to carefully deal with pull request. Merging must be the product of complete discussions between Flash and OpCoding teams :)
Examples
You have the possibility to validate a Notification entity with NotificationValidator class:
<?php use Fei\Service\Notification\Validator; use Fei\Service\Notification\Entity; $notificationData = [ 'origin' => 'origin', 'recipient' => 'thomas', 'event' => 'chat.message.new', 'message' => 'Example message', 'type' => 1, ]; $notification = new Notification(); $notificationValidator = new NotificationValidator(); $notificationHydrator = new NotificationHydrator(); $notification = $notificationHydrator->hydrate($notificationData, $notification); //validate returns true if your Notification instance is valid, or false in the other case $isValid = $notificationValidator->validate($notification); //getErrors() allows you to get an array of errors if there are some, or an empty array in the other case $errors = $notificationValidator->getErrors();
Notification and alert creation
<?php use Fei\Service\Notification\Entity\Alert\Email; use Fei\Service\Notification\Entity\Notification; use Fei\Service\Notification\Entity\Alert\Android\Message as AndroidMessage; use Fei\Service\Notification\Entity\Alert\Sms\Message as SmsMessage; $notification = (new Notification()) ->setMessage('Last test') ->setOrigin('test') ->setEvent('My best event') ->setType(Notification::TYPE_INFO) ->setAction(json_encode(['my.action' => 'first create'])) ->setRecipient('user'); $alert_email = (new Email()) ->setNotification($notification) ->setSubject('Email Subject') ->setContent('Email content') ->setEmail('email@provider.com'); $alert_android = (new Android()) ->setNotification($notification) ->setMessage(new AndroidMessage()) ->setRecipients(['id_device_1', 'id_device_2']) ->setDryRun(true) ->setPushNotification(['title' => 'Notif', 'body' => 'Test message']); $alert_sms = (new Sms()) ->setNotification($notification) ->setMessage(new SmsMessage()) ->setFrom('email@provider.com') ->setRecipients(['email@provider.com', 'email2@provider.com']) ->setContent("Sms de test");