. */ namespace SP\Modules\Web\Controllers\Traits; use SP\Core\Exceptions\SPException; use SP\Http\JsonResponse; use SP\Util\Json; /** * Trait JsonTrait * * @package SP\Modules\Web\Controllers\Traits */ trait JsonTrait { /** * Returns JSON response * * @param int $status Status code * @param string $description Untranslated description string * @param array|null $messages Untranslated massages array of strings */ protected function returnJsonResponse($status, $description, array $messages = null) { $jsonResponse = new JsonResponse(); $jsonResponse->setStatus($status); $jsonResponse->setDescription($description); if (null !== $messages) { $jsonResponse->setMessages($messages); } Json::returnJson($jsonResponse); } /** * Returns JSON response * * @param mixed $data * @param int $status Status code * @param null $description Untranslated description string */ protected function returnJsonResponseData($data, $status = JsonResponse::JSON_SUCCESS, $description = null) { $jsonResponse = new JsonResponse(); $jsonResponse->setStatus($status); $jsonResponse->setData($data); if (null !== $description) { $jsonResponse->setDescription($description); } Json::returnJson($jsonResponse); } /** * Returns JSON response * * @param \Exception $exception * @param int $status Status code */ protected function returnJsonResponseException(\Exception $exception, $status = JsonResponse::JSON_ERROR) { $jsonResponse = new JsonResponse(); $jsonResponse->setStatus($status); $jsonResponse->setDescription($exception->getMessage()); if ($exception instanceof SPException && $exception->getHint() !== null) { $jsonResponse->setMessages([$exception->getHint()]); } Json::returnJson($jsonResponse); } }