Exemplo n.º 1
0
 public static function handleRequest()
 {
     $request = array();
     // parse the request metadata
     $request['metadata'] = CartAPI_Engine::getRequestMetadata();
     // parse the request post data (if found)
     $request['data'] = array();
     $post_data = CartAPI_Engine::getRequestPostData();
     if ($post_data !== false) {
         $decoder = CartAPI_Engine::getDecoder($request['metadata']['X-FORMAT']);
         if ($decoder !== false) {
             $request['data'] = $decoder->parse($post_data);
         }
     }
     // override with parameters passed on the URL
     CartAPI_Engine::parseUrlRequestData($request['data']);
     // prepare an encoder for the response
     $request['encoder'] = CartAPI_Engine::getEncoder($request['metadata']['X-FORMAT']);
     if ($request['encoder'] === false) {
         return false;
     }
     // do some sanity checking
     if (!isset($request['metadata']['X-OPERATION'])) {
         CartAPI_Helpers::dieOnError($request['encoder'], 'IncompleteMetadata', 'X-OPERATION missing from metadata');
     }
     return $request;
 }