$service = new Service($request); // require authentication? if (null !== $config->getValue('basicUser')) { $basicAuthPlugin = new BasicAuthentication($config->getValue('basicUser'), $config->getValue('basicPass'), $config->getValue('serviceName')); $service->registerBeforeMatchingPlugin($basicAuthPlugin); } // GROUPS $service->match("GET", "/groups/:uid", function ($uid) use($request, $vootStorage) { $groups = $vootStorage->isMemberOf($uid, $request->getQueryParameter("startIndex"), $request->getQueryParameter("count")); $response = new JsonResponse(200); $response->setContent($groups); return $response; }); // PEOPLE IN GROUP $service->match("GET", "/people/:uid/:gid", function ($uid, $gid) use($request, $vootStorage) { $users = $vootStorage->getGroupMembers($uid, $gid, $request->getQueryParameter("startIndex"), $request->getQueryParameter("count")); $response = new JsonResponse(200); $response->setContent($users); return $response; }); $service->run()->sendResponse(); } catch (VootStorageException $e) { $response = new JsonResponse($e->getResponseCode()); $response->setContent(array("error" => $e->getMessage(), "error_description" => $e->getDescription())); $response->sendResponse(); } catch (Exception $e) { // any other error thrown by any of the modules, assume internal server error $response = new JsonResponse(500); $response->setContent(array("error" => "internal_server_error", "error_description" => $e->getMessage())); $response->sendResponse(); }