public function getStartOperation()
    {
        $id = 0;
        if ($this->hasAuthRequest()) {
            // Step through operations, skipping any at the beginning that can be skipped.
            foreach ($this->operations as $id => $operation) {
                if ($id == count($this->operations) - 1) {
                    // This is the last request so it cannot be skipped.
                    break;
                }

                if (!$this->hasAuthRequest($id)) {
                    // This is not an auth request so it should never be skipped.
                    break;
                }

                if ($this->operationUpdatesContact($operation)) {
                    // This operation should never be skipped because it can update the contact.
                    break;
                }

                $this->determineOperationRequirements();
                if (isset($this->requiredPayloadTokens[$id])) {
                    // This step can be skipped if we have these tokens.
                    $this->loadPreviousPayloadAuthTokens();
                    foreach ($this->requiredPayloadTokens[$id] as $token) {
                        if (!isset($this->previousPayloadAuthTokens[$token])) {
                            // We cannot skip this operation because a required token isn't in the database yet.
                            break;
                        }
                    }
                } else {
                    // This step is indicated as auth, but no tokens from it are used in the following payload.
                    // Assume the client hasn't been fully configured and do not skip this operation.
                    break;
                }
            }
        }

        return $id;
    }
public function getStartOperation()
    {
        $id = 0;
        if ($this->hasAuthRequest()) {
            // Step through operations, skipping any at the beginning that can be skipped.
            foreach ($this->operations as $id => $operation) {
                if ($id == count($this->operations) - 1) {
                    // This is the last request so it cannot be skipped.
                    break;
                }

                if (!$this->hasAuthRequest($id)) {
                    // This is not an auth request so it should never be skipped.
                    break;
                }

                if ($this->operationUpdatesContact($operation)) {
                    // This operation should never be skipped because it can update the contact.
                    break;
                }

                $this->determineOperationRequirements();
                if (isset($this->requiredPayloadTokens[$id])) {
                    // This step can be skipped if we have these tokens.
                    $this->loadPreviousPayloadAuthTokens();
                    foreach ($this->requiredPayloadTokens[$id] as $token) {
                        if (!isset($this->previousPayloadAuthTokens[$token])) {
                            // We cannot skip this operation because a required token isn't in the database yet.
                            break;
                        }
                    }
                } else {
                    // This step is indicated as auth, but no tokens from it are used in the following payload.
                    // Assume the client hasn't been fully configured and do not skip this operation.
                    break;
                }
            }
        }

        return $id;
    }
public function getStartOperation ( ) { $ id = 0 ; if ( $ this -> hasAuthRequest ( ) ) { // Step through operations, skipping any at the beginning that can be skipped. foreach ( $ this -> operations as $ id => $ operation ) { if ( $ id == count ( $ this -> operations ) - 1 ) { // This is the last request so it cannot be skipped. break ; } if ( ! $ this -> hasAuthRequest ( $ id ) ) { // This is not an auth request so it should never be skipped. break ; } if ( $ this -> operationUpdatesContact ( $ operation ) ) { // This operation should never be skipped because it can update the contact. break ; } $ this -> determineOperationRequirements ( ) ; if ( isset ( $ this -> requiredPayloadTokens [ $ id ] ) ) { // This step can be skipped if we have these tokens. $ this -> loadPreviousPayloadAuthTokens ( ) ; foreach ( $ this -> requiredPayloadTokens [ $ id ] as $ token ) { if ( ! isset ( $ this -> previousPayloadAuthTokens [ $ token ] ) ) { // We cannot skip this operation because a required token isn't in the database yet. break ; } } } else { // This step is indicated as auth, but no tokens from it are used in the following payload. // Assume the client hasn't been fully configured and do not skip this operation. break ; } } } return $ id ; }
Step forward through operations to find the one we MUST start with.

@return array
Step forward through operations to find the one we MUST start with .