61 lines
1.4 KiB
PHP
61 lines
1.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/sushi/SushiException.php
|
|
*
|
|
* Copyright (c) 2022 Simon Fraser University
|
|
* Copyright (c) 2022 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class SushiException
|
|
*
|
|
* @ingroup sushi
|
|
*
|
|
* @brief Class that defines an COUNTER R5 exception
|
|
*
|
|
*/
|
|
|
|
namespace PKP\sushi;
|
|
|
|
use Exception;
|
|
|
|
class SushiException extends Exception
|
|
{
|
|
/** The Severity element is deprecated and will be removed in the next COUNTER major release */
|
|
protected $severity;
|
|
|
|
/** Additional information that further describes the Exception */
|
|
protected $data;
|
|
|
|
protected $httpStatusCode;
|
|
|
|
public function __construct(string $message, int $code, string $severity, string $data, int $httpStatusCode)
|
|
{
|
|
parent::__construct($message, $code);
|
|
$this->severity = $severity;
|
|
$this->data = $data;
|
|
$this->httpStatusCode = $httpStatusCode;
|
|
}
|
|
|
|
/**
|
|
* Get data prepared for the JSON response
|
|
*/
|
|
public function getResponseData(): array
|
|
{
|
|
return [
|
|
'Code' => $this->code,
|
|
'Severity' => $this->severity,
|
|
'Message' => $this->message,
|
|
'Data' => $this->data
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Get the HTTP status code
|
|
*/
|
|
public function getHttpStatusCode(): int
|
|
{
|
|
return $this->httpStatusCode;
|
|
}
|
|
}
|