src/DivideIQ.php
protected function setup()
    {
        // Check if a valid access token exists.
        if (!$this->accessToken || $this->accessToken->expired()) {
            // Refresh is successful unless explicitly set to false.
            $refreshSuccess = true;

            // Check if a valid refresh token exists.
            if ($this->refreshToken && $this->refreshToken->getToken()) {
                // Attempt to use the refresh token.
                try {
                    $this->refresh();
                } catch (RequestException $e) {
                    // Check if the exception is due to an HTTP 403.
                    if ($e->getCode() == 403) {
                        $response = $e->getResponse();
                        $json = json_decode($response->getBody());
                        $body = $json->{'nl.divide.iq'};

                        // Check if the error is indeed a "TokenExpired" error,
                        // as expected.
                        if ($body->answer == 'TokenExpired') {
                            // Token is expired; refreshing unsuccessful.
                            $refreshSuccess = false;
                        } else {
                            // Unexpected error. Pass it up the stack. This
                            // might be a "TokenEmpty" error, but that would
                            // still be unexpected, because the token value was
                            // checked beforehand.
                            throw $e;
                        }
                    } else {
                        // Unexpected error. Pass it up the stack.
                        throw $e;
                    }
                }
            } else {
                // There is no refresh token to use; refreshing unsuccessful.
                $refreshSuccess = false;
            }

            // If refreshing failed, login from scratch and then authenticate.
            if (!$refreshSuccess) {
                $this->login()->authenticate();
            }
        }

        // Request the settings if needed.
        if (!$this->settings) {
            $response = $this->client->get('settings', [
                'headers' => ['Authentication' => $this->accessToken->getToken()],
            ]);

            $json = json_decode($response->getBody());
            $body = $json->{'nl.divide.iq'};
            $services = [];
            foreach ($body->services as $service) {
                $services[] = $service->code;
            }

            // Create new settings object.
            $this->settings = new Settings($services, $body->settings_updated);
        }
    }
protected function setup()
    {
        // Check if a valid access token exists.
        if (!$this->accessToken || $this->accessToken->expired()) {
            // Refresh is successful unless explicitly set to false.
            $refreshSuccess = true;

            // Check if a valid refresh token exists.
            if ($this->refreshToken && $this->refreshToken->getToken()) {
                // Attempt to use the refresh token.
                try {
                    $this->refresh();
                } catch (RequestException $e) {
                    // Check if the exception is due to an HTTP 403.
                    if ($e->getCode() == 403) {
                        $response = $e->getResponse();
                        $json = json_decode($response->getBody());
                        $body = $json->{'nl.divide.iq'};

                        // Check if the error is indeed a "TokenExpired" error,
                        // as expected.
                        if ($body->answer == 'TokenExpired') {
                            // Token is expired; refreshing unsuccessful.
                            $refreshSuccess = false;
                        } else {
                            // Unexpected error. Pass it up the stack. This
                            // might be a "TokenEmpty" error, but that would
                            // still be unexpected, because the token value was
                            // checked beforehand.
                            throw $e;
                        }
                    } else {
                        // Unexpected error. Pass it up the stack.
                        throw $e;
                    }
                }
            } else {
                // There is no refresh token to use; refreshing unsuccessful.
                $refreshSuccess = false;
            }

            // If refreshing failed, login from scratch and then authenticate.
            if (!$refreshSuccess) {
                $this->login()->authenticate();
            }
        }

        // Request the settings if needed.
        if (!$this->settings) {
            $response = $this->client->get('settings', [
                'headers' => ['Authentication' => $this->accessToken->getToken()],
            ]);

            $json = json_decode($response->getBody());
            $body = $json->{'nl.divide.iq'};
            $services = [];
            foreach ($body->services as $service) {
                $services[] = $service->code;
            }

            // Create new settings object.
            $this->settings = new Settings($services, $body->settings_updated);
        }
    }
protected function setup ( ) { // Check if a valid access token exists. if ( ! $ this -> accessToken || $ this -> accessToken -> expired ( ) ) { // Refresh is successful unless explicitly set to false. $ refreshSuccess = true ; // Check if a valid refresh token exists. if ( $ this -> refreshToken && $ this -> refreshToken -> getToken ( ) ) { // Attempt to use the refresh token. try { $ this -> refresh ( ) ; } catch ( RequestException $ e ) { // Check if the exception is due to an HTTP 403. if ( $ e -> getCode ( ) == 403 ) { $ response = $ e -> getResponse ( ) ; $ json = json_decode ( $ response -> getBody ( ) ) ; $ body = $ json -> { 'nl.divide.iq' } ; // Check if the error is indeed a "TokenExpired" error, // as expected. if ( $ body -> answer == 'TokenExpired' ) { // Token is expired; refreshing unsuccessful. $ refreshSuccess = false ; } else { // Unexpected error. Pass it up the stack. This // might be a "TokenEmpty" error, but that would // still be unexpected, because the token value was // checked beforehand. throw $ e ; } } else { // Unexpected error. Pass it up the stack. throw $ e ; } } } else { // There is no refresh token to use; refreshing unsuccessful. $ refreshSuccess = false ; } // If refreshing failed, login from scratch and then authenticate. if ( ! $ refreshSuccess ) { $ this -> login ( ) -> authenticate ( ) ; } } // Request the settings if needed. if ( ! $ this -> settings ) { $ response = $ this -> client -> get ( 'settings' , [ 'headers' => [ 'Authentication' => $ this -> accessToken -> getToken ( ) ] , ] ) ; $ json = json_decode ( $ response -> getBody ( ) ) ; $ body = $ json -> { 'nl.divide.iq' } ; $ services = [ ] ; foreach ( $ body -> services as $ service ) { $ services [ ] = $ service -> code ; } // Create new settings object. $ this -> settings = new Settings ( $ services , $ body -> settings_updated ) ; } }
Sets up a connection with the Divide.IQ server.
Sets up a connection with the Divide . IQ server .