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; }
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; }