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

Revision 6025, 1.6 KB checked in by niltonneto, 12 years ago (diff)

Ticket #2507 - Corrigido problema ao retornar erro do Tonic em dispatch.

  • Property svn:executable set to *
Line 
1<?php
2
3// load Tonic library
4require_once __DIR__.'/../library/tonic/lib/tonic.php';
5
6// load Expresso classes
7require_once("./core/Errors.php");
8require_once("./core/Expresso.php");
9
10// Load all resources
11require_once("./core/ExpressoVersionResource.php");
12require_once("./core/LoginResource.php");
13require_once("./core/LogoutResource.php");
14
15require_once("./mail/Mail.php");
16require_once("./mail/FoldersResource.php");
17require_once("./mail/MessagesResource.php");
18
19require_once("./catalog/Catalog.php");
20require_once("./catalog/ContactsResource.php");
21require_once("./catalog/ContactPictureResource.php");
22
23//Retrieveing the mapping of the URIs and his respectives classNames and classPath
24$config = parse_ini_file( __DIR__ . '/../config/Tonic.srv', true );
25$autoload = array();
26$classpath = array();
27
28foreach( $config as $uri => $classFile )
29        foreach( $classFile as $className => $filePath )
30        {
31                $autoload[ $uri ] = $className;
32                $classpath[ $className ] = $filePath;
33        }
34
35        $request = new Request(array(
36                        'baseUri' => dirname($_SERVER['SCRIPT_NAME']),
37                        'autoload' => $autoload
38        ));
39       
40try {
41        $resource = $request->loadResource();
42        $response = $resource->exec($request);
43       
44} catch (ResponseException $e) {
45       
46        switch ($e->getCode()) {
47               
48                case Response::UNAUTHORIZED:
49                        $response = $e->response($request);
50                        $response->addHeader('WWW-Authenticate', 'Basic realm="Tonic"');
51                        break;
52                default:
53                        $expresso = new Expresso($request->id);
54                        $expresso->post($request);
55                        $expresso->setError("".$e->getCode(), $request->uri);                   
56                        $response = $expresso->getResponse();                   
57        }
58}
59
60$response->output();
61
62?>
Note: See TracBrowser for help on using the repository browser.