Files
awo-hamburg-intranet/mysyde/common/classes/GenericServicePayloadBuilder.php
2026-02-17 14:56:23 +01:00

428 lines
10 KiB
PHP

<?php
namespace DynCom\mysyde\common\classes;
/**
* Created by PhpStorm.
* User: Bauer
* Date: 17.08.2015
* Time: 15:49
*/
class GenericServicePayloadBuilder
{
/**
* @var ServiceRequestID
*/
protected $requestID;
/**
* @var string
*/
protected $serviceName = '';
/**
* @var int
*/
protected $statusCode = 400;
/**
* @var string
*/
protected $statusMessage = '';
/**
* @var array
*/
protected $payloadData = [];
/**
* @var array
*/
protected $devErrors = [];
/**
* @var array
*/
protected $devWarnings = [];
/**
* @var array
*/
protected $devNotifications = [];
/**
* @var array
*/
protected $userSuccessMsgs = [];
/**
* @var array
*/
protected $userErrors = [];
/**
* @var array
*/
protected $userWarnings = [];
/**
* @var array
*/
protected $userNotifications = [];
/**
* @return ServiceRequestID
*/
public function getRequestID()
{
return $this->requestID;
}
/**
* @param ServiceRequestID $requestID
*/
public function setRequestID($requestID)
{
$this->requestID = $requestID;
}
/**
* @return string
*/
public function getServiceName()
{
return $this->serviceName;
}
/**
* @param string $serviceName
*/
public function setServiceName($serviceName)
{
$this->serviceName = $serviceName;
}
/**
* @return int
*/
public function getStatusCode()
{
return $this->statusCode;
}
/**
* @param int $statusCode
*/
public function setStatusCode($statusCode)
{
$this->statusCode = $statusCode;
}
/**
* @return string
*/
public function getStatusMessage()
{
return $this->statusMessage;
}
/**
* @param string $statusMessage
*/
public function setStatusMessage($statusMessage)
{
$this->statusMessage = $statusMessage;
}
/**
* @return array
*/
public function getPayloadData()
{
return $this->payloadData;
}
/**
* @param array $payloadData
*/
public function setPayloadData($payloadData)
{
$this->payloadData = $payloadData;
}
/**
* @return array
*/
public function getDevErrors()
{
return $this->devErrors;
}
/**
* @param array $devErrors
*/
public function setDevErrors($devErrors)
{
$this->devErrors = $devErrors;
}
/**
* @return array
*/
public function getDevWarnings()
{
return $this->devWarnings;
}
/**
* @param array $devWarnings
*/
public function setDevWarnings($devWarnings)
{
$this->devWarnings = $devWarnings;
}
/**
* @return array
*/
public function getDevNotifications()
{
return $this->devNotifications;
}
/**
* @param array $devNotifications
*/
public function setDevNotifications($devNotifications)
{
$this->devNotifications = $devNotifications;
}
/**
* @return array
*/
public function getUserSuccessMsgs()
{
return $this->userSuccessMsgs;
}
/**
* @param array $userSuccessMsgs
*/
public function setUserSuccessMsgs($userSuccessMsgs)
{
$this->userSuccessMsgs = $userSuccessMsgs;
}
/**
* @return array
*/
public function getUserErrors()
{
return $this->userErrors;
}
/**
* @param array $userErrors
*/
public function setUserErrors($userErrors)
{
$this->userErrors = $userErrors;
}
/**
* @return array
*/
public function getUserWarnings()
{
return $this->userWarnings;
}
/**
* @param array $userWarnings
*/
public function setUserWarnings($userWarnings)
{
$this->userWarnings = $userWarnings;
}
/**
* @return array
*/
public function getUserNotifications()
{
return $this->userNotifications;
}
/**
* @param array $userNotifications
*/
public function setUserNotifications($userNotifications)
{
$this->userNotifications = $userNotifications;
}
public function reset()
{
unset($this->requestID);
$this->serviceName = '';
$this->statusCode = 400;
$this->statusMessage = '';
$this->devErrors = [];
$this->devWarnings = [];
$this->devNotifications = [];
$this->userSuccessMsgs = [];
$this->userErrors = [];
$this->userNotifications = [];
}
/**
* @return GenericServicePayload
*/
public function makeGenericServicePayload()
{
return new GenericServicePayload($this->requestID, $this->serviceName, $this->statusCode, $this->statusMessage, $this->payloadData, $this->devErrors, $this->devWarnings, $this->devNotifications, $this->userSuccessMsgs, $this->userErrors, $this->userWarnings, $this->userNotifications);
}
/**
* @param $serviceName
* @param ServiceRequestID|null $requestID
* @param array $messageData
* @return GenericServicePayload
*/
public function make400GenericServicePayload($serviceName, ServiceRequestID $requestID = null, array $messageData = []) {
$this->reset();
$this->serviceName = $serviceName;
if(null !== $requestID) {
$this->requestID = $requestID;
}
if(null === $this->requestID) {
$this->requestID = new ServiceRequestID($this->serviceName);
}
$this->statusCode = 400;
$this->statusMessage = 'Bad Request';
$requestIDString = $this->requestID->getID();
$this->devErrors = [
$requestIDString => [
'code' => 400,
'message' => 'bad_request',
'message_data' => $messageData
]
];
$this->userErrors = [
$requestIDString => [
'code' => 400,
'message' => 'bad_request',
'message_data' => $messageData
]
];
return $this->makeGenericServicePayload();
}
/**
* @param $serviceName
* @param ServiceRequestID|null $requestID
* @param array $messageData
* @return GenericServicePayload
*/
public function make403GenericServicePayload($serviceName, ServiceRequestID $requestID = null, array $messageData = []) {
$this->reset();
$this->serviceName = $serviceName;
if(null !== $requestID) {
$this->requestID = $requestID;
}
if(null === $this->requestID) {
$this->requestID = new ServiceRequestID($this->serviceName);
}
$this->statusCode = 403;
$this->statusMessage = 'Forbidden.';
$requestIDString = $this->requestID->getID();
$this->devErrors = [
$requestIDString => [
'code' => 403,
'message' => 'Forbidden.',
'message_data' => $messageData
]
];
$this->userErrors = [
$requestIDString => [
'code' => 403,
'message' => 'not_found',
'message_data' => $messageData
]
];
return $this->makeGenericServicePayload();
}
/**
* @param $serviceName
* @param ServiceRequestID|null $requestID
* @param array $messageData
* @return GenericServicePayload
*/
public function make404GenericServicePayload($serviceName, ServiceRequestID $requestID = null, array $messageData = []) {
$this->reset();
$this->serviceName = $serviceName;
if(null !== $requestID) {
$this->requestID = $requestID;
}
if(null === $this->requestID) {
$this->requestID = new ServiceRequestID($this->serviceName);
}
$this->statusCode = 404;
$this->statusMessage = 'Not Found.';
$this->devErrors = [
$this->requestID->getID() => [
'code' => 404,
'message' => 'Not Found.',
'message_data' => $messageData
]
];
$this->userErrors = [
$this->requestID->getID() => [
'code' => 404,
'message' => 'not_found',
'message_data' => $messageData
]
];
return $this->makeGenericServicePayload();
}
/**
* @param $serviceName
* @param ServiceRequestID|null $requestID
* @param array $messageData
* @return GenericServicePayload
*/
public function make405GenericServicePayload($serviceName, ServiceRequestID $requestID = null, array $messageData = []) {
$this->reset();
$this->serviceName = $serviceName;
if(null !== $requestID) {
$this->requestID = $requestID;
}
if(null === $this->requestID) {
$this->requestID = new ServiceRequestID($this->serviceName);
}
$this->statusCode = 405;
$this->statusMessage = 'Method not allowed.';
$requestIDString = $this->requestID->getID();
$this->devErrors = [
$requestIDString => [
'code' => 405,
'message' => 'Method not allowed.',
'message_data' => $messageData
]
];
$this->userErrors = [
$requestIDString => [
'code' => 405,
'message' => 'method_not_allowed',
'message_data' => $messageData
]
];
return $this->makeGenericServicePayload();
}
}