statusCode; } /** * set the status code. * * @param [type] $statusCode [description] * * @return statuscode */ public function setStatusCode($statusCode) { $this->statusCode = $statusCode; return $this; } /** * Respond. * * @param array $data * @param array $headers * * @return \Illuminate\Http\JsonResponse */ public function respond($data, $headers = []) { return response()->json($data, $this->getStatusCode(), $headers); } /** * respond with pagincation. * * @param Paginator $items * @param array $data * * @return \Illuminate\Http\JsonResponse */ public function respondWithPagination($items, $data) { $data = array_merge($data, [ 'paginator' => [ 'total_count' => $items->total(), 'total_pages' => ceil($items->total() / $items->perPage()), 'current_page' => $items->currentPage(), 'limit' => $items->perPage(), ], ]); return $this->respond($data); } /** * Respond Created. * * @param string $message * * @return \Illuminate\Http\JsonResponse */ public function respondCreated($data) { return $this->setStatusCode(201)->respond([ 'data' => $data, ]); } /** * Respond Created with data. * * @param string $message * * @return \Illuminate\Http\JsonResponse */ public function respondCreatedWithData($data) { return $this->setStatusCode(201)->respond($data); } /** * respond with error. * * @param $message * * @return \Illuminate\Http\JsonResponse */ public function respondWithError($message) { return $this->respond([ 'error' => [ 'message' => $message, 'status_code' => $this->getStatusCode(), ], ]); } /** * responsd not found. * * @param string $message * * @return \Illuminate\Http\JsonResponse */ public function respondNotFound($message = 'Not Found') { return $this->respond([ 'message' => $message, 'status_code' => IlluminateResponse::HTTP_NOT_FOUND, ]); } /** * Respond with error. * * @param string $message * * @return \Illuminate\Http\JsonResponse */ public function respondInternalError($message) { return $this->respond([ 'error' => $message, ]); } /** * Respond with unauthorized. * * @param string $message * * @return \Illuminate\Http\JsonResponse */ protected function respondUnauthorized($message = 'Unauthorized') { return $this->setStatusCode(401)->respondWithError($message); } /** * Respond with forbidden. * * @param string $message * * @return \Illuminate\Http\JsonResponse */ protected function respondForbidden($message = 'Forbidden') { return $this->setStatusCode(403)->respondWithError($message); } /** * Respond with no content. * * @return \Illuminate\Http\JsonResponse */ protected function respondWithNoContent() { return $this->setStatusCode(204)->respond(null); } /** * @param $message * * @return \Illuminate\Http\JsonResponse */ public function throwValidation($message) { return $this->respond([ 'message' => $message, 'status_code' => 422, ]); } /** * update the status code and remove field from the array. * * @param array $request * * @return $this */ public function updateStatusCode(array &$request) { if (array_key_exists('status_code', $request)) { $this->statusCode = $request['status_code']; unset($request['status_code']); } return $this; } }