Hubspot_Helpers::api_refresh_token( mixed $tokens )

api_refresh_token


Parameters Parameters

$tokens

(Required)


Top ↑

Return Return

(void)


Source Source

File: src/integrations/hubspot/helpers/hubspot-helpers.php

	public function api_refresh_token( $tokens ) {

		$params = array(
			'endpoint' => self::API_ENDPOINT,
			'body' => array(
				'action' => 'refresh_token',
				'client' => wp_json_encode( $tokens ),
			),
		);

		$last_call = get_option( '_automator_hubspot_last_refresh_token_call', 0 );

		// Rate limit token refresh calls if they fail
		if ( time() - $last_call < 10 ) {
			throw new \Exception( __( 'HubSpot token refresh timeout, please try to reconnect HubSpot from settings', 'uncanny-automator' ) );
		}

		$response = Api_Server::api_call( $params );

		if ( empty( $response['data']['access_token'] ) ) {

			update_option( '_automator_hubspot_last_refresh_token_call', time() );

			$error_msg = __( 'Could not refresh HubSpot token.', 'uncanny-automator' );

			if ( ! empty( $response['data']['message'] ) ) {
				$error_msg = $response['data']['message'];
			}

			throw new \Exception( $error_msg, $response['statusCode'] );
		}

		$tokens = $this->store_client( $response['data'] );

		return $tokens;

	}