source: sandbox/webservice/api/rest/dispatch.php @ 7463

Revision 7463, 2.4 KB checked in by alexandrecorreia, 12 years ago (diff)

Ticket #2507 - Melhorias dos resources REST, servidor e calendar.

  • Property svn:executable set to *
RevLine 
[6019]1<?php
2
[6148]3// load libraries
[6165]4require_once(__DIR__.'/../library/tonic/lib/tonic.php');
5require_once(__DIR__.'/../library/utils/Errors.php');
[6019]6
[6148]7// load adapters
[6149]8require_once(__DIR__."/../adapters/ExpressoAdapter.php");
9require_once(__DIR__."/../adapters/MailAdapter.php");
10require_once(__DIR__."/../adapters/CatalogAdapter.php");
[6423]11require_once(__DIR__."/../adapters/CalendarAdapter.php");
[6019]12
13// Load all resources
[7463]14require_once(__DIR__."/availableServers/AvailableServersResource.php");
[6149]15require_once(__DIR__."/core/ExpressoVersionResource.php");
16require_once(__DIR__."/core/LoginResource.php");
17require_once(__DIR__."/core/LogoutResource.php");
18require_once(__DIR__."/mail/FoldersResource.php");
19require_once(__DIR__."/mail/MessagesResource.php");
[6155]20require_once(__DIR__."/mail/AddFolderResource.php");
21require_once(__DIR__."/mail/DelFolderResource.php");
[6495]22require_once(__DIR__."/mail/DelMessageResource.php");
[6155]23require_once(__DIR__."/mail/RenameFolderResource.php");
[6149]24require_once(__DIR__."/mail/CleanTrashResource.php");
[6307]25require_once(__DIR__."/mail/AttachmentResource.php");
[6338]26require_once(__DIR__."/mail/SendResource.php");
[6149]27require_once(__DIR__."/mail/SendSupportFeedbackResource.php");
28require_once(__DIR__."/catalog/ContactsResource.php");
29require_once(__DIR__."/catalog/ContactPictureResource.php");
[6423]30require_once(__DIR__."/calendar/EventsResource.php");
[6019]31
32//Retrieveing the mapping of the URIs and his respectives classNames and classPath
33$config = parse_ini_file( __DIR__ . '/../config/Tonic.srv', true );
34$autoload = array();
35$classpath = array();
36
37foreach( $config as $uri => $classFile )
[7463]38{
[6019]39        foreach( $classFile as $className => $filePath )
40        {
41                $autoload[ $uri ] = $className;
42                $classpath[ $className ] = $filePath;
43        }
44
45        $request = new Request(array(
46                        'baseUri' => dirname($_SERVER['SCRIPT_NAME']),
47                        'autoload' => $autoload
48        ));
[7463]49}
[6019]50       
51try {
[7463]52
[6019]53        $resource = $request->loadResource();
54        $response = $resource->exec($request);
55       
56} catch (ResponseException $e) {
57       
58        switch ($e->getCode()) {
59               
60                case Response::UNAUTHORIZED:
61                        $response = $e->response($request);
62                        $response->addHeader('WWW-Authenticate', 'Basic realm="Tonic"');
63                        break;
64                default:
[6165]65                       
66                        $response = new Response($request);
67                        $response->code = Response::OK;
68                        $response->addHeader('content-type', 'application/json');
69                        if($request->id)
70                                $body['id']     = $request->id;
71                       
72                        $body['error'] = array("code" => "".$e->getCode(), "message" => $e->getMessage());
73                        $response->body = json_encode($body);
[6019]74        }
75}
76
77$response->output();
78
[6084]79?>
Note: See TracBrowser for help on using the repository browser.