. */ namespace SP\Modules\Api\Controllers\Traits; use Klein\Klein; use SP\Api\ApiResponse; use SP\Api\JsonRpcResponse; use SP\Core\Exceptions\SPException; /** * Trait ResponseTrait * @package SP\Modules\Api\Controllers\Traits * @property Klein $router */ trait ResponseTrait { /** * Devuelve una respuesta en formato JSON con el estado y el mensaje. * * {"jsonrpc": "2.0", "result": 19, "id": 3} * * @param ApiResponse $apiResponse * @param int $id * @return string La cadena en formato JSON */ protected function returnResponse(ApiResponse $apiResponse, $id = 0) { $this->router->response()->headers()->set('Content-type', 'application/json; charset=utf-8'); try { exit(JsonRpcResponse::getResponse($apiResponse, $id)); } catch (SPException $e) { processException($e); exit(JsonRpcResponse::getResponseException($e, $id)); } } /** * @param \Exception $e * @param int $id * @return string */ protected function returnResponseException(\Exception $e, $id = 0) { $this->router->response()->headers()->set('Content-type', 'application/json; charset=utf-8'); exit(JsonRpcResponse::getResponseException($e, $id)); } }