Exemplo n.º 1
0
 public function handleItem(RequestItem $requestItem)
 {
     try {
         $token = $requestItem->getToken();
         $method = strtolower($requestItem->getMethod());
         if ($token->isAnonymous() && !in_array($method, self::$GET_SYNONYMS)) {
             // Anonymous requests are only allowed to GET data (not create/edit/delete)
             throw new SocialSpiException("[{$method}] not allowed for anonymous users", ResponseError::$BAD_REQUEST);
         } elseif (in_array($method, self::$GET_SYNONYMS)) {
             $parameters = $requestItem->getParameters();
             if (in_array("@supportedFields", $parameters, true)) {
                 $response = $this->getSupportedFields($parameters);
             } else {
                 $response = $this->handleGet($requestItem);
             }
         } elseif (in_array($method, self::$UPDATE_SYNONYMS)) {
             $response = $this->handlePut($requestItem);
         } elseif (in_array($method, self::$DELETE_SYNONYMS)) {
             $response = $this->handleDelete($requestItem);
         } elseif (in_array($method, self::$CREATE_SYNONYMS)) {
             $response = $this->handlePost($requestItem);
         } else {
             throw new SocialSpiException("Unserviced Http method type", ResponseError::$BAD_REQUEST);
         }
     } catch (SocialSpiException $e) {
         $response = new ResponseItem($e->getCode(), $e->getMessage());
     } catch (Exception $e) {
         $response = new ResponseItem(ResponseError::$INTERNAL_ERROR, "Internal error: " . $e->getMessage());
     }
     return $response;
 }
Exemplo n.º 2
0
 public function handleItem(RequestItem $requestItem)
 {
     try {
         $method = strtolower($requestItem->getMethod());
         $method = 'handle' . ucfirst($method);
         $response = $this->{$method}($requestItem);
     } catch (SocialSpiException $e) {
         $response = new ResponseItem($e->getCode(), $e->getMessage());
     } catch (Exception $e) {
         $response = new ResponseItem(ResponseError::$INTERNAL_ERROR, "Internal error: " . $e->getMessage());
     }
     return $response;
 }