repository = $repository; $this->resource_server_service = $resource_server_service; $this->allowed_filter_fields = ['']; $this->allowed_projection_fields = ['*']; } public function get($id) { try { $resource_server = $this->repository->get($id); if (is_null($resource_server)) { return $this->error404(array('error' => 'resource server not found')); } $data = $resource_server->toArray(); $apis = $resource_server->apis()->get(array('id', 'name')); $data['apis'] = $apis->toArray(); $client = $resource_server->getClient(); if (!is_null($client)) { $data['client_id'] = $client->getClientId(); $data['client_secret'] = $client->getClientSecret(); } return $this->ok($data); } catch (Exception $ex) { $this->log_service->error($ex); return $this->error500($ex); } } public function getByPage() { try { $fields = $this->getProjection(Input::get('fields', null)); $filters = $this->getFilters(Input::except('fields', 'limit', 'offset')); $page_nbr = intval(Input::get('offset', 1)); $page_size = intval(Input::get('limit', 10)); $paginator = $this->repository->getAll($page_nbr, $page_size, $filters, $fields); $items = []; foreach ($paginator->items() as $rs) { $items[] = $rs->toArray(); } return $this->ok([ 'page' => $items, 'total_items' => $paginator->total() ]); } catch (Exception $ex) { $this->log_service->error($ex); return $this->error500($ex); } } public function create() { try { $values = Input::all(); $rules = array( 'host' => 'required|host|max:255', 'ips' => 'required', 'friendly_name' => 'required|text|max:512', 'active' => 'required|boolean', ); // Creates a Validator instance and validates the data. $validation = Validator::make($values, $rules); if ($validation->fails()) { $messages = $validation->messages()->toArray(); return $this->error400(array('error' => 'validation', 'messages' => $messages)); } $new_resource_server_model = $this->resource_server_service->add( $values['host'], $values['ips'], $values['friendly_name'], $values['active']); return $this->created(array('resource_server_id' => $new_resource_server_model->id)); } catch (InvalidResourceServer $ex1) { $this->log_service->error($ex1); return $this->error400(array('error' => $ex1->getMessage())); } catch (Exception $ex) { $this->log_service->error($ex); return $this->error500($ex); } } public function delete($id) { try { $this->resource_server_service->delete($id); return $this->deleted(); } catch (EntityNotFoundException $ex1) { $this->log_service->warning($ex1); return $this->error404(['message' => $ex1->getMessage()]); } catch (Exception $ex) { $this->log_service->error($ex); return $this->error500($ex); } } public function regenerateClientSecret($id) { try { $res = $this->resource_server_service->regenerateClientSecret($id); return !is_null($res) ? $this->ok(array('new_secret' => $res)) : $this->error404(array('error' => 'operation failed')); } catch (EntityNotFoundException $ex1) { $this->log_service->warning($ex1); return $this->error404(['message' => $ex1->getMessage()]); } catch (Exception $ex) { $this->log_service->error($ex); return $this->error500($ex); } } public function update() { try { $values = Input::all(); $rules = array( 'id' => 'required|integer', 'host' => 'sometimes|required|host|max:255', 'ips' => 'required', 'friendly_name' => 'sometimes|required|text|max:512', ); // Creates a Validator instance and validates the data. $validation = Validator::make($values, $rules); if ($validation->fails()) { $messages = $validation->messages()->toArray(); return $this->error400(array('error' => 'validation', 'messages' => $messages)); } $res = $this->resource_server_service->update(intval($values['id']), $values); return $this->ok(); } catch (EntityNotFoundException $ex1) { $this->log_service->warning($ex1); return $this->error404(['message' => $ex1->getMessage()]); } catch (InvalidResourceServer $ex1) { $this->log_service->error($ex1); return $this->error404(array('message' => $ex1->getMessage())); } catch (Exception $ex) { $this->log_service->error($ex); return $this->error500($ex); } } public function activate($id) { try { $this->resource_server_service->setStatus($id, true); return $this->ok(); } catch (EntityNotFoundException $ex1) { $this->log_service->warning($ex1); return $this->error404(['message' => $ex1->getMessage()]); } catch (Exception $ex) { $this->log_service->error($ex); return $this->error500($ex); } } public function deactivate($id) { try { $this->resource_server_service->setStatus($id, false); return $this->ok(); } catch (EntityNotFoundException $ex1) { $this->log_service->warning($ex1); return $this->error404(['message' => $ex1->getMessage()]); } catch (Exception $ex) { $this->log_service->error($ex); return $this->error500($ex); } } }