function RegisterGroups(SlimServer $server, SlimWebServiceRegistry $registry) { $groupRepository = new GroupRepository(); $webService = new GroupsWebService($server, $groupRepository, $groupRepository); $category = new SlimWebServiceRegistryCategory('Groups'); $category->AddSecureGet('/', array($webService, 'GetGroups'), WebServices::AllGroups); $category->AddSecureGet('/:groupId', array($webService, 'GetGroup'), WebServices::GetGroup); $registry->AddCategory($category); }
public static function Render(SlimWebServiceRegistry $registry, Slim\Slim $app) { $head = <<<EOT \t<!DOCTYPE html> \t <html> \t <head> \t <meta charset="utf-8"/> \t <title>Booked Scheduler API Documentation</title> \t <style type="text/css"> \t\t\t\t\tbody \t\t\t\t\t{ \t\t\t\t\t\tmargin: 10px; \t\t\t\t\t\tfont: 12px Helvetica, "Helvetica Neue", "Lucida Grande", Verdana, Arial, sans-serif; \t\t\t\t\t} \t\t\t\t\th1 { \t\t\t\t\t\tcolor: #fff; \t\t\t\t\t\tbackground-color: #36648B; \t\t\t\t\t\tline-height: 90px; \t\t\t\t\t\tpadding-left: 20px; \t\t\t\t\t} \t\t\t\t\th2 { \t\t\t\t\t\tbackground-color: #BCE27F; \t\t\t\t\t\tline-height: 30px; \t\t\t\t\t\tpadding-left: 20px; \t\t\t\t\t\tborder: solid 1px #8CC739; \t\t\t\t\t} \t\t\t\t\t.service { \t\t\t\t\t\tborder: solid 1px #ccc; \t\t\t\t\t\tbackground-color: #ededed; \t\t\t\t\t\tpadding: 6px; \t\t\t\t\t\tpadding-top:0px; \t\t\t\t\t\tmargin-bottom: 4px; \t\t\t\t\t} \t\t\t\t\t.code { \t\t\t\t\t\tfont-family: courier; \t\t\t\t\t} \t\t\t\t\t#security { \t\t\t\t\t\tbackground-color: #FFFF99; \t\t\t\t\t\tborder: solid 1px #CC9900; \t\t\t\t\t\tpadding: 6px; \t\t\t\t\t} \t\t\t\t\t#security span { \t\t\t\t\t\tfont-weight:bold; \t\t\t\t\t} \t\t\t\t\ta, a:visited { \t\t\t\t\t\tcolor:blue; \t\t\t\t\t} \t </style> \t </head> \t <body> \t <h1>Booked Scheduler API Documentation</h1> EOT; $security = sprintf("<div id='security'>Pass the following headers for all secure service calls: <span>%s</span> and <span>%s</span></div>", WebServiceHeaders::SESSION_TOKEN, WebServiceHeaders::USER_ID); echo $head; echo $security; echo '<ul>'; foreach ($registry->Categories() as $category) { echo "<li><a href='#{$category->Name()}'>{$category->Name()}</a></li>"; } echo '</ul>'; foreach ($registry->Categories() as $category) { echo "<a name='{$category->Name()}'></a><h2>{$category->Name()}</h2>"; echo "<a href=''>Return To Top</a>"; echo '<h3>POST Services</h3>'; foreach ($category->Posts() as $service) { echo '<div class="service">'; $md = $service->Metadata(); $request = $md->Request(); self::EchoCommon($md, $service, $app); echo '<h4>Request</h4>'; if (is_object($request)) { echo '<div class="code">' . json_encode($request) . '</div>'; } elseif (is_null($request)) { echo 'No request'; } else { echo 'Unstructured request of type <i>' . $request . '</i>'; } echo '</div>'; } echo '<h3>GET Services</h3>'; foreach ($category->Gets() as $service) { echo '<div class="service">'; $md = $service->Metadata(); self::EchoCommon($md, $service, $app); echo '</div>'; } echo '<h3>DELETE Services</h3>'; foreach ($category->Deletes() as $service) { echo '<div class="service">'; $md = $service->Metadata(); self::EchoCommon($md, $service, $app); echo '</div>'; } } echo '</body></html>'; }
public function testRegistersAdminRoute() { $callback = array($this, 'cb'); $slim = new TestSlim(); $registry = new SlimWebServiceRegistry($slim); $c1Name = 'Something'; $category1 = new SlimWebServiceRegistryCategory($c1Name); $c1p1 = '/post/1/'; $c1p2 = '/get/:1'; $c1p3 = '/delete/:1'; $c1p1name = 'c1p1name'; $c1p2name = 'c1p2name'; $c1p3name = 'c1p3name'; $category1->AddAdminPost($c1p1, $callback, $c1p1name); $category1->AddAdminGet($c1p2, $callback, $c1p2name); $category1->AddAdminDelete($c1p3, $callback, $c1p3name); $registry->AddCategory($category1); $this->assertEquals('/Something/post/1', $slim->posts[0]->route); $this->assertEquals($callback, $slim->posts[0]->callback); $this->assertEquals($c1p1name, $slim->posts[0]->name()); $this->assertEquals('/Something/get/:1', $slim->gets[0]->route); $this->assertEquals($c1p2name, $slim->gets[0]->name()); $this->assertEquals($callback, $slim->gets[0]->callback); $this->assertEquals('/Something/delete/:1', $slim->deletes[0]->route); $this->assertEquals($c1p3name, $slim->deletes[0]->name()); $this->assertEquals($callback, $slim->deletes[0]->callback); $this->assertTrue($registry->IsSecure($c1p1name)); $this->assertTrue($registry->IsSecure($c1p2name)); $this->assertTrue($registry->IsSecure($c1p3name)); $this->assertTrue($registry->IsLimitedToAdmin($c1p1name)); $this->assertTrue($registry->IsLimitedToAdmin($c1p2name)); $this->assertTrue($registry->IsLimitedToAdmin($c1p3name)); }