/** * Update an account by a given account_number * @param string $accountNumber Required parameter: Account Number * @param string $token Required parameter: Token * @param TokenForm $tokenForm Required parameter: TODO: type description here * @return string response from the API call*/ public function updateAccessToken($accountNumber, $token, $tokenForm) { //the base uri for api requests $queryBuilder = Configuration::$BASEURI; //prepare query string for API call $queryBuilder = $queryBuilder . '/accounts/{account_number}/access-tokens/{token}'; //process optional query parameters APIHelper::appendUrlWithTemplateParameters($queryBuilder, array('account_number' => $accountNumber, 'token' => $token)); //validate and preprocess url $queryUrl = APIHelper::cleanUrl($queryBuilder); //prepare headers $headers = array('user-agent' => 'APIMATIC 2.0', 'content-type' => 'application/json; charset=utf-8'); //prepare API request $request = Unirest::patch($queryUrl, $headers, json_encode($tokenForm)); //append custom auth authorization headers CustomAuthUtility::appendCustomAuthParams($request); //and invoke the API call request to fetch the response $response = Unirest::getResponse($request); //Error handling using HTTP status codes if ($response->code == 401) { throw new APIException('You are not authenticated', 401, $response->body); } else { if ($response->code == 403) { throw new APIException('This action needs a valid WSSE header', 403, $response->body); } else { if ($response->code == 404) { throw new APIException('Resource not found', 404, $response->body); } else { if ($response->code == 400) { throw new APIException('Http bad request', 400, $response->body); } else { if ($response->code < 200 || $response->code > 206) { //[200,206] = HTTP OK throw new APIException("HTTP Response Not OK", $response->code, $response->body); } } } } } return $response->body; }