get('/api/v1/radius/profile', function (Application $app, Request $request) { $ch = new Checks(); $codeResponse = 400; try { $config = $this->setUserPasswordConfig($request, Configuration::getDefaultConfiguration()); $apiInstance = new ProfileApi( new Client(), $config ); try { $id = $ch->integer($request, "id"); $apiInstance->setDisabledTenancy(true); $result = $apiInstance->getById($id); $apiInstance->setDisabledTenancy(false); if ($result) { $content = $result->__toString(); $content = (new CurlOptions())->clearNull($content); $codeResponse = 200; } else { $content = "No se encontro el id = " . $id; } } catch (Throwable $e) { $content = $e->getCode() . " - " . $e->getMessage(); } } catch (Throwable $t) { $content = $t->getCode() . " - " . $t->getMessage(); } return new Response($content, $codeResponse); }); } public function getProfiles(Application $app) { $app->get('/api/v1/radius/profiles', function (Application $app, Request $request) { $ch = new Checks(); $codeResponse = 400; try { $config = $this->setUserPasswordConfig($request, Configuration::getDefaultConfiguration()); $apiInstance = new ProfileApi( new Client(), $config ); try { $page = $ch->integer($request, "page", false); $limit = $ch->integer($request, "limit", false); $id = $ch->integer($request, "id", false); $name = $ch->string($request, "name", false); $tenancyId = $ch->integer($request, "tenancyId", false); $qb_criteria = $ch->integer($request, "qb-criteria", false, null); $content = "["; $result = $apiInstance->getList($id, $name, $tenancyId, $qb_criteria, $limit, $page); foreach ($result as $v) { // se eliminan los null $content .= $v->__toString() . ","; } if (strlen($content) > 1) { $content = substr($content, 0, strlen($content) - 1); } $content .= "]"; $content = (new CurlOptions())->clearNull($content); $codeResponse = 200; } catch (Throwable $e) { $content = $e->getCode() . " - " . $e->getMessage(); } } catch (Throwable $t) { $content = $t->getCode() . " - " . $t->getMessage(); } return new Response($content, $codeResponse); }); } public function getAccessId(Application $app) { $app->get('/api/v1/radius/access', function (Application $app, Request $request) { $ch = new Checks(); $codeResponse = 400; try { $config = $this->setUserPasswordConfig($request, Configuration::getDefaultConfiguration()); $apiInstance = new AccessApi( new Client(), $config ); try { $id = $ch->integer($request, "id"); $apiInstance->setDisabledTenancy(true); $result = $apiInstance->getById($id); $apiInstance->setDisabledTenancy(false); if ($result) { $content = $result->__toString(); $content = (new CurlOptions())->clearNull($content); $codeResponse = 200; } else { $content = "No se encontro el id = " . $id; } } catch (Throwable $e) { $content = $e->getCode() . " - " . $e->getMessage(); } } catch (Throwable $t) { $content = $t->getCode() . " - " . $t->getMessage(); } return new Response($content, $codeResponse); }); } public function getAccesses(Application $app) { $app->get('/api/v1/radius/accesses', function (Application $app, Request $request) { $ch = new Checks(); $codeResponse = 400; try { $config = $this->setUserPasswordConfig($request, Configuration::getDefaultConfiguration()); $apiInstance = new AccessApi( new Client(), $config ); try { $page = $ch->integer($request, "page", false); $limit = $ch->integer($request, "limit", false); $id = $ch->integer($request, "id", false); $name = $ch->string($request, "name", false); $profile = $ch->integer($request, "profile", false); $clientId = $ch->string($request, "clientId", false); $tenancyId = $ch->integer($request, "tenancyId", false); $qb_criteria = $ch->integer($request, "qb-criteria", false, null); $content = "["; $result = $apiInstance->getList($id, $name, $profile, $clientId, $tenancyId, $qb_criteria, $limit, $page); foreach ($result as $v) { // se eliminan los null $content .= $v->__toString() . ","; } if (strlen($content) > 1) { $content = substr($content, 0, strlen($content) - 1); } $content .= "]"; $content = (new CurlOptions())->clearNull($content); $codeResponse = 200; } catch (Throwable $e) { $content = $e->getCode() . " - " . $e->getMessage(); } } catch (Throwable $t) { $content = $t->getCode() . " - " . $t->getMessage(); } return new Response($content, $codeResponse); }); } public function postAccess(Application $app) { $app->post('/api/v1/radius/access', function (Application $app, Request $request) { $codeResponse = 400; try { $config = $this->setUserPasswordConfig($request, Configuration::getDefaultConfiguration()); $configBase = $this->setUserPasswordConfig($request, ConfigurationBase::getDefaultConfiguration()); $apiInstance = new AccessApi( new Client(), $config ); $apiValidation = new ValidationApi( new Client(), $config ); $data = json_decode(file_get_contents('php://input'), true); $utils = new Utils(); $instance = $utils->loadData(new AccessCRUD(), $data); $errors = $instance->listInvalidProperties(); $content = null; if (is_null($instance->getName()) || trim($instance->getName()) == "") { $content = "Debe cargar el nombre del acceso."; } elseif (is_null($instance->getPassword()) || trim($instance->getPassword()) == "") { $content = "Debe cargar la contraseƱa del acceso."; } elseif (count($errors) === 0) { // chequeo la tenencia $apiTenancy = new TenancyApi( new Client(), $configBase ); // verifico si existe la tenencia if (!is_null($instance->getTenancyId()) && !is_null($apiTenancy->getById($instance->getTenancyId()))) { $apiValidationBase = new ValidationApiBase( new Client(), $configBase ); // busco si el externalid ya esta cargado if (!is_null($instance->getClientId()) && $instance->getClientId() > 0) { // chequeo el cliente exista if (!$apiValidationBase->validClient($instance->getClientId())) { $content = "El id del cliente no existe."; } } if (is_null($content)) { if (is_null($instance->getProfile()) || $instance->getProfile() <= 0) { $content = "El id de perfil no existe."; } else { $result = $apiValidation->validProfile($instance->getProfile()); if (is_null($result)) { $content = "El id de perfil no existe."; } } if (is_null($content)) { $apiInstance->create($instance); // busco el id del cliente, buscandolo por externalid $result = $apiValidation->existsAccess($instance->getName(), $instance->getTenancyId()); if (!is_null($result)) { // busco por external id $content = $result->__toString(); $codeResponse = 200; } else { $content = "No se pudo obtener el acceso cargado. Verifique por sistema si la carga se realizo correctamente."; } } } } else { $content = "El id de tenencia es incorrecto."; } } else { $content = json_encode($errors); } } catch (Throwable $t) { $content = $t->getCode() . " - " . $t->getMessage(); } return new Response($content, $codeResponse); }); } public function putAccess(Application $app) { $app->put('/api/v1/radius/access', function (Application $app, Request $request) { $codeResponse = 400; try { $config = $this->setUserPasswordConfig($request, Configuration::getDefaultConfiguration()); $configBase = $this->setUserPasswordConfig($request, ConfigurationBase::getDefaultConfiguration()); $apiInstance = new AccessApi( new Client(), $config ); $apiValidation = new ValidationApi( new Client(), $config ); $data = json_decode(file_get_contents('php://input'), true); $utils = new Utils(); $instance = $utils->loadData(new AccessCRUD(), $data); $errors = $instance->listInvalidProperties(); $content = null; if (!is_null($instance->getName()) && trim($instance->getName()) == "") { $content = "Debe cargar el nombre del acceso."; } elseif (!is_null($instance->getPassword()) && trim($instance->getPassword()) == "") { $content = "Debe cargar la contraseƱa del acceso."; } elseif (count($errors) === 0) { // chequeo la tenencia $apiTenancy = new TenancyApi( new Client(), $configBase ); // verifico si existe la tenencia if (!is_null($instance->getTenancyId()) && !is_null($apiTenancy->getById($instance->getTenancyId()))) { $apiValidationBase = new ValidationApiBase( new Client(), $configBase ); // busco si el externalid ya esta cargado if (!is_null($instance->getClientId()) && $instance->getClientId() > 0) { // chequeo el cliente exista if (!$apiValidationBase->validClient($instance->getClientId())) { $content = "El id del cliente no existe."; } } if (is_null($content)) { if (is_null($instance->getProfile()) || $instance->getProfile() <= 0) { $content = "El id de perfil no existe."; } else { $result = $apiValidation->validProfile($instance->getProfile()); if (is_null($result)) { $content = "El id de perfil no existe."; } } if (is_null($content)) { $apiInstance->update($instance->getId(), $instance); // busco el id del cliente, buscandolo por externalid $result = $apiValidation->validAccess($instance->getId()); if (!is_null($result)) { // busco por external id $content = $result->__toString(); $codeResponse = 200; } else { $content = "No se pudo obtener el acceso cargado. Verifique por sistema si la carga se realizo correctamente."; } } } } else { $content = "El id de tenencia es incorrecto."; } } else { $content = json_encode($errors); } } catch (Throwable $t) { $content = $t->getCode() . " - " . $t->getMessage(); } return new Response($content, $codeResponse); }); } public function deleteAccess(Application $app) { $app->delete('/api/v1/radius/access', function (Application $app, Request $request) { $codeResponse = 400; try { $config = $this->setUserPasswordConfig($request, Configuration::getDefaultConfiguration()); $apiInstance = new AccessApi( new Client(), $config ); $ch = new Checks(); $id = $ch->integer($request, "id", true); $apiInstance->setDisabledTenancy(true); $result = $apiInstance->getById($id); $apiInstance->setDisabledTenancy(false); if (!is_null($result)) { $apiInstance->delete($id); $content = $result->__toString(); $codeResponse = 200; } else { $content = "No se encontro el id = " . $id; } } catch (Throwable $t) { $content = $t->getCode() . " - " . $t->getMessage(); } return new Response($content, $codeResponse); }); } }