Пример #1
0
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);
}
Пример #2
0
    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));
 }