/** * @param int $notificationId * @param INotification $notification * @return array */ protected function notificationToArray($notificationId, INotification $notification) { $data = ['notification_id' => $notificationId, 'app' => $notification->getApp(), 'user' => $notification->getUser(), 'timestamp' => $notification->getTimestamp(), 'object_type' => $notification->getObjectType(), 'object_id' => $notification->getObjectId(), 'subject' => $notification->getParsedSubject(), 'message' => $notification->getParsedMessage(), 'link' => $notification->getLink(), 'icon' => $notification->getIcon(), 'actions' => []]; foreach ($notification->getParsedActions() as $action) { $data['actions'][] = $this->actionToArray($action); } return $data; }
/** * @dataProvider dataSetUser * @param string $user */ public function testSetUser($user) { $this->assertSame('', $this->notification->getUser()); $this->assertSame($this->notification, $this->notification->setUser($user)); $this->assertSame($user, $this->notification->getUser()); }
/** * Add where statements to a query builder matching the given notification * * @param IQueryBuilder $sql * @param INotification $notification */ protected function sqlInsert(IQueryBuilder $sql, INotification $notification) { $sql->setValue('app', $sql->createParameter('app'))->setParameter('app', $notification->getApp()); $sql->setValue('user', $sql->createParameter('user'))->setParameter('user', $notification->getUser()); $sql->setValue('timestamp', $sql->createParameter('timestamp'))->setParameter('timestamp', $notification->getTimestamp()); $sql->setValue('object_type', $sql->createParameter('objectType'))->setParameter('objectType', $notification->getObjectType()); $sql->setValue('object_id', $sql->createParameter('objectId'))->setParameter('objectId', $notification->getObjectId()); $sql->setValue('subject', $sql->createParameter('subject'))->setParameter('subject', $notification->getSubject()); $sql->setValue('subject_parameters', $sql->createParameter('subject_parameters'))->setParameter('subject_parameters', json_encode($notification->getSubjectParameters())); $sql->setValue('message', $sql->createParameter('message'))->setParameter('message', $notification->getMessage()); $sql->setValue('message_parameters', $sql->createParameter('message_parameters'))->setParameter('message_parameters', json_encode($notification->getMessageParameters())); $sql->setValue('link', $sql->createParameter('link'))->setParameter('link', $notification->getLink()); $sql->setValue('icon', $sql->createParameter('icon'))->setParameter('icon', $notification->getIcon()); $actions = []; foreach ($notification->getActions() as $action) { /** @var IAction $action */ $actions[] = ['label' => $action->getLabel(), 'icon' => $action->getIcon(), 'link' => $action->getLink(), 'type' => $action->getRequestType()]; } $sql->setValue('actions', $sql->createParameter('actions'))->setParameter('actions', json_encode($actions)); }