. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Tools\OAuthServer\Utils; use Espo\Core\Api\Response; use Espo\Core\Api\ResponseComposer; class ErrorResponseComposer { /** * @param ?int<400, 499> $statusCode */ public static function compose( string $error, string $errorDescription, ?int $statusCode = null, ): Response { $header = "Bearer error=\"$error\", error_description=\"$errorDescription\""; $response = ResponseComposer::json([ 'error' => $error, 'error_description' => $errorDescription, ]); if ($statusCode) { $response->setStatus($statusCode); } $response->setHeader('WWW-Authenticate', $header); return $response; } }