source: sandbox/webservice/api/rest/core/Errors.php @ 6084

Revision 6084, 3.3 KB checked in by asaikawa, 12 years ago (diff)

Ticket #2507 - Adicionado recurso de envio de email de suporte ou sugestao

Line 
1<?php
2
3final class Errors {
4               
5        // Errors from -32000 to -32099 => Server error :Reserved for implementation-defined server-errors.
6        const E_PARSE_ERROR             = "-32700";     
7        const E_INVALID_REQUEST         = "-32600";
8        const E_METHOD_NOT_FOUND        = "-32601";
9        const E_INVALID_PARAMS          = "-32602";
10        const E_INTERNAL_ERROR          = "-32603";     
11
12        const E_HTTP_NOT_FOUND          = "404";
13        const E_UNKNOWN_ERROR           = "500";
14       
15       
16        // Errors inherited from Expresso Application. 
17        const LOGIN_SUCCESS_LOGOUT                      = "1";
18        const LOGIN_SESSION_EXPIRED             = "2";
19        const LOGIN_NOT_LOGGED_IN                       = "3";
20        const LOGIN_COOKIES_REQUIRED            = "4";
21        const LOGIN_BADLOGIN                            = "5";
22        const LOGIN_PASSWORD_EXPIRED            = "6";
23        const LOGIN_AUTH_INVALID                        = "7";
24        const LOGIN_SESSION_NOT_VERIFIED        = "10";
25        const LOGIN_ACCOUNT_EXPIRED             = "98";
26        const LOGIN_LOGIN_BLOCKED                       = "99";
27        const LOGIN_INVALID_LOGIN                       = "200";
28       
29
30        const CATALOG_MIN_ARGUMENT_SEARCH       = "1001";       
31        const MAIL_NOT_SENT                                     = "1002";
32       
33        static private $reservedErrors = array (                       
34                self::E_PARSE_ERROR             => "Parse error",
35                self::E_INVALID_REQUEST         => "Invalid Request",
36                self::E_METHOD_NOT_FOUND        => "Method not found",
37                self::E_INVALID_PARAMS          => "Invalid params",
38                self::E_INTERNAL_ERROR          => "Internal error",
39                self::E_HTTP_NOT_FOUND          => 'A resource matching URI "%1" was not found',
40                self::E_UNKNOWN_ERROR           => "HTTP Unknown error"
41        );
42       
43       
44        // Errors inherited from Expresso Application.
45        static private $applicationErrors = array(                     
46
47                self::LOGIN_SUCCESS_LOGOUT                      => "You have been successfully logged out",
48                self::LOGIN_SESSION_EXPIRED             => "Sorry, your login has expired",
49                self::LOGIN_NOT_LOGGED_IN                       => "You are not logged in",
50                self::LOGIN_COOKIES_REQUIRED            => "Cookies are required to login to this site.",
51                self::LOGIN_BADLOGIN                            => "bad login or password",
52                self::LOGIN_PASSWORD_EXPIRED            => "Your password has expired, and you do not have access to change it",
53                self::LOGIN_AUTH_INVALID                        => "Your auth is invalid",
54                self::LOGIN_SESSION_NOT_VERIFIED        => "Your session could not be verified.",
55                self::LOGIN_ACCOUNT_EXPIRED             => "Account is expired",
56                self::LOGIN_LOGIN_BLOCKED                       => "Blocked, too many attempts!",
57                self::LOGIN_INVALID_LOGIN                       => "Bad login or password",
58                self::CATALOG_MIN_ARGUMENT_SEARCH       => "Your search argument must be longer than %1 characters.",
59                self::MAIL_NOT_SENT                                     => "Your mail could not be sent."
60        );
61               
62        static public function set($code, $message){
63                return array ("code" => $code, "message" => $message);
64        }
65
66        static public function get($code, $argument = false){
67                $errors = self::$reservedErrors + self::$applicationErrors;             
68                $message = $errors[$code];
69                if(!$message)
70                        $message = $errors[self::E_UNKNOWN_ERROR];
71                if($argument)
72                        $message = str_replace("%1", $argument, $message);             
73               
74                return array ("code" => $code, "message" => $message);
75        }
76       
77        static public function getResponse($request, $responseException){                       
78                        $response = new Response($request);
79                        $response->code = Response::OK;
80                        $response->addHeader('content-type', 'application/json');
81                        if($request->id)
82                                $body['id']     = $request->id;
83                       
84                        $code    = $responseException->getCode();
85                        $error = Errors::get($code);                   
86                        $message = ($responseException->getMessage() ? $responseException->getMessage() : $error['message']);                   
87                        $body['error'] = array("code" => $code, "message" => $message);         
88                        $response->body = json_encode($body);
89                        return $response;
90        }
91               
92}
Note: See TracBrowser for help on using the repository browser.