/** * Executes a service listed on ServiceEnum class. * * @param string $action * @param array $arguments * * @throws \LeroyMerlin\ExactTarget\Exception\ActionNotFoundException * @throws \LeroyMerlin\ExactTarget\Exception\RequestException * * @return \Psr\Http\Message\ResponseInterface */ public function __call($action, $arguments) { $token = $this->getToken(); $actionInfo = ServiceEnum::toEndpoint($action); $parameters = count($arguments) ? $arguments[0] : []; $data = isset($parameters['data']) ? $parameters['data'] : []; return $this->requestBuilder->request($this->urlBuilder->build($actionInfo['subdomain'], $actionInfo['action'], $actionInfo['service'], $parameters), $actionInfo['method'], ['json' => $data, 'headers' => ['Authorization' => 'Bearer ' . $token]]); }
/** * * @param type $method * @param type $arguments * @return \Brognara\GoogleAPIWrapper\GoogleAPIWrapperClass * @throws \Exception */ function __call($method, $arguments) { $norm_method = strtoupper($method); if (ServiceEnum::isValidName($norm_method)) { $this->service = strtolower($norm_method); $this->base_url = 'https://www.googleapis.com/' . $this->service . '/v3/' . $arguments[0]; return $this; } throw new \Exception("Service " . $norm_method . " not enbled or invalid"); }
/** * Retrieves a new token to API authentication * * @return string */ public function request() { $requestInfo = ServiceEnum::toEndpoint('requestToken'); $parameters = ['clientId' => $this->clientId, 'clientSecret' => $this->clientSecret]; return $this->requestBuilder->request((new UrlBuilder())->build($requestInfo['subdomain'], $requestInfo['action'], $requestInfo['service']), $requestInfo['method'], ['json' => $parameters]); }