SuiteCRM-Core/public/legacy/Api/V8/Controller/BaseController.php
Clemente Raposo 5aa0daf046 Merge next into suite 8
Merge commit 'de4bf25cb3' into release/8.4.0-beta

# Conflicts:
#	public/legacy/data/SugarBean.php
#	public/legacy/include/Smarty/plugins/function.sugarvar.php
#	public/legacy/include/SugarDateTime.php
#	public/legacy/include/database/MysqliManager.php
#	public/legacy/modules/Alerts/metadata/listviewdefs.php
#	public/legacy/modules/SugarFeed/Dashlets/SugarFeedDashlet/SugarFeedDashlet.php
#	public/legacy/modules/Trackers/metadata/SearchFields.php
#	public/legacy/modules/Trackers/metadata/listviewdefs.php
#	public/legacy/modules/UpgradeWizard/SugarMerge/EditViewMerge.php
#	public/legacy/suitecrm_version.php
2023-07-21 15:22:52 +01:00

52 lines
1.4 KiB
PHP

<?php
namespace Api\V8\Controller;
use Api\V8\JsonApi\Response\ErrorResponse;
use Slim\Http\Response as HttpResponse;
#[\AllowDynamicProperties]
abstract class BaseController
{
public const MEDIA_TYPE = 'application/vnd.api+json';
/**
* @param HttpResponse $httpResponse
* @param mixed $response
* @param integer $status
*
* @return HttpResponse
*/
public function generateResponse(
HttpResponse $httpResponse,
$response,
$status
) {
return $httpResponse
->withStatus($status)
->withHeader('Accept', static::MEDIA_TYPE)
->withHeader('Content-type', static::MEDIA_TYPE)
->write(
json_encode(
$response,
JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
)
);
}
/**
* @param HttpResponse $httpResponse
* @param \Exception $exception
* @param integer $status
*
* @return HttpResponse
*/
public function generateErrorResponse(HttpResponse $httpResponse, \Exception $exception, $status)
{
$response = new ErrorResponse();
$response->setStatus($status);
$response->setDetail($exception->getMessage());
$response->setException($exception);
return $this->generateResponse($httpResponse, $response, $status);
}
}