/** * query - main execution point for retrieving data from the remote database * * @param string queryType (get, post, delete, put) * @param string entity - the mapped name of the table to access * @param string verb - which action to perform * @param array params - passed in variables to work with on the DB side * * @return array */ public function query($queryType, AbstractModel $entity, $verb, $params) { $ymlKey = $this->keyname; $configParams = $this->getCredentials($ymlKey); $credentials = $configParams['credentials']; $api = new RestClient(array('base_url' => $credentials['baseUrl'], 'format' => $credentials['format'], 'headers' => $this->buildHeaders($credentials))); $api->setLogger($this->logger); $result = $api->{$queryType}($entity->getTablename() . "/{$verb}/", $params); if ($result->info->http_code == 200) { $decodedResult = $result->decode_response(); if (is_null($decodedResult) || empty($decodedResult)) { return null; } if (array_key_exists('code', $decodedResult)) { $this->handleError($decodedResult); } //reset the XSS token for next request if (isset($decodedResult->AuthorizationToken)) { $_SESSION['AuthorizationToken'] = $decodedResult->AuthorizationToken; } return $decodedResult; } elseif ($result->info->http_code == 500) { $decodedResult = $result->decode_response(); if (array_key_exists('code', $decodedResult)) { $this->handleError($decodedResult); } } }
public function __construct(HTTPRequest $httpRequest, HTTPResponse $httpResponse, Logger $logger) { parent::__construct($httpRequest, $httpResponse, $logger); $this->childNamespace = str_replace('\\', DIRECTORY_SEPARATOR, __NAMESPACE__); $this->entity = 'Locale'; $this->tablename = 'locales'; }