<?php declare(strict_types=1); /** * +---------------------------------------------------------------------- * | 闄€铻哄尃 [ 璧嬭兘寮€鍙戣€咃紝鍔╁姏浼佷笟鍙戝睍 ] * +---------------------------------------------------------------------- * | Copyright (c) 2016~2024 https://www.tuoluojiang.com All rights reserved. * +---------------------------------------------------------------------- * | Licensed 闄€铻哄尃骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀闄€铻哄尃鐩稿叧鐗堟潈 * +---------------------------------------------------------------------- * | Author: 闄€铻哄尃 Team <admin@tuoluojiang.com> * +---------------------------------------------------------------------- */ namespace crmeb\exceptions; use crmeb\services\ApiResponseService; use Illuminate\Http\JsonResponse; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; /** * Class ApiRequestException. */ class ApiRequestException extends \RuntimeException { /** * @var int */ protected $statusCode; public function __construct($message = '', $code = 0, ?\Throwable $previous = null, int $statusCode = 200) { parent::__construct($message, $code, $previous); $this->statusCode = $statusCode; } /** * @return JsonResponse * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function render() { /** @var ApiResponseService $response */ $response = app()->get(ApiResponseService::class); return $response->httpStatus($this->code)->make($this->code, $this->getMessage(), $this->getTrace()); } }