fei/notification-common

Flash Notification - Common components

v1.3.0 2019-01-31 14:48 UTC

README

GitHub release

Table of contents

Entities

Notification

  • originis a string representing the origin of the notification
  • recipientis a string representing the recipient of the notification
  • eventis a string representing the event linked to the notification
  • messageis a string indicating the message
  • type is an integer representing the type of the notification. 1 : Info, 2 : Warning
  • status is an integer representing the status of the notification. 0 : Unread, 1 : Read, 2 : Acknowledged
  • parentNotificationId is an integer representing the parent notification
  • context is a json
  • action is a json

Android alert entity

  • messageis a Message (described below) indicating the message

Message (Android alert)

Android\Notification (Android alert)

Email alert entity

  • emailis a string representing the email recipient
  • subjectis a string indicating the subject of the email
  • contentis a string representing the content of the email

SMS alert entity

  • messageis a Message (described below) indicating the message

Message (SMS alert)

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");