Add POST endpoint for creating service messages
This commit is contained in:
parent
c985f80452
commit
d305ccf9b3
@ -4,6 +4,8 @@ namespace BusinessLogic\ServiceMessages;
|
|||||||
|
|
||||||
|
|
||||||
// TODO Test
|
// TODO Test
|
||||||
|
use BusinessLogic\Exceptions\ValidationException;
|
||||||
|
use BusinessLogic\ValidationModel;
|
||||||
use DataAccess\ServiceMessages\ServiceMessagesGateway;
|
use DataAccess\ServiceMessages\ServiceMessagesGateway;
|
||||||
|
|
||||||
class ServiceMessageHandler extends \BaseClass {
|
class ServiceMessageHandler extends \BaseClass {
|
||||||
@ -15,8 +17,41 @@ class ServiceMessageHandler extends \BaseClass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function createServiceMessage($serviceMessage, $heskSettings) {
|
function createServiceMessage($serviceMessage, $heskSettings) {
|
||||||
// TODO Validate
|
$this->validate($serviceMessage);
|
||||||
|
|
||||||
return $this->serviceMessageGateway->createServiceMessage($serviceMessage, $heskSettings);
|
return $this->serviceMessageGateway->createServiceMessage($serviceMessage, $heskSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $serviceMessage ServiceMessage
|
||||||
|
* @throws ValidationException
|
||||||
|
*/
|
||||||
|
private function validate($serviceMessage) {
|
||||||
|
$validationModel = new ValidationModel();
|
||||||
|
if ($serviceMessage->createdBy < 1) {
|
||||||
|
$validationModel->errorKeys[] = 'MISSING_CREATOR';
|
||||||
|
}
|
||||||
|
if ($serviceMessage->icon === null || trim($serviceMessage->icon) === '') {
|
||||||
|
$validationModel->errorKeys[] = 'MISSING_ICON';
|
||||||
|
}
|
||||||
|
if ($serviceMessage->message === null || trim($serviceMessage->message) === '') {
|
||||||
|
$validationModel->errorKeys[] = 'MISSING_MESSAGE';
|
||||||
|
}
|
||||||
|
if ($serviceMessage->title === null || trim($serviceMessage->title) === '') {
|
||||||
|
$validationModel->errorKeys[] = 'MISSING_TITLE';
|
||||||
|
}
|
||||||
|
if ($serviceMessage->style === null || trim($serviceMessage->style) === '') {
|
||||||
|
$validationModel->errorKeys[] = 'MISSING_STYLE';
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
ServiceMessageStyle::getIdForStyle($serviceMessage->style);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$validationModel->errorKeys[] = 'INVALID_STYLE';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($validationModel->errorKeys) > 0) {
|
||||||
|
// Validation failed
|
||||||
|
throw new ValidationException($validationModel);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -202,6 +202,8 @@ Link::all(array(
|
|||||||
'/v1/statuses' => action(\Controllers\Statuses\StatusController::clazz(), RequestMethod::all()),
|
'/v1/statuses' => action(\Controllers\Statuses\StatusController::clazz(), RequestMethod::all()),
|
||||||
// Settings
|
// Settings
|
||||||
'/v1/settings' => action(\Controllers\Settings\SettingsController::clazz(), RequestMethod::all()),
|
'/v1/settings' => action(\Controllers\Settings\SettingsController::clazz(), RequestMethod::all()),
|
||||||
|
// Service Messages
|
||||||
|
'/v1/service-messages' => action(\Controllers\ServiceMessages\ServiceMessagesController::clazz(), array(RequestMethod::POST)),
|
||||||
|
|
||||||
/* Internal use only routes */
|
/* Internal use only routes */
|
||||||
// Resend email response
|
// Resend email response
|
||||||
|
Loading…
x
Reference in New Issue
Block a user