Takes a base query for all objects and recursively requests them

        :param str base_object_query: the base query to be executed
        :param int limit_to: how many rows to query for in each chunk
        :param int max_calls: the max calls(chunks to request) None is infinite
        :param int start_record: the first record to return from the query
        :param bool verbose: print progress to stdout
        :return: a list of Organization objects

def get_long_query(self, base_object_query, limit_to=100, max_calls=None,
                       start_record=0, verbose=False):
        """
        Takes a base query for all objects and recursively requests them

        :param str base_object_query: the base query to be executed
        :param int limit_to: how many rows to query for in each chunk
        :param int max_calls: the max calls(chunks to request) None is infinite
        :param int start_record: the first record to return from the query
        :param bool verbose: print progress to stdout
        :return: a list of Organization objects
        """

        if verbose:
            print(base_object_query)

        record_index = start_record
        result = run_object_query(self.client, base_object_query, record_index,
                                  limit_to, verbose)

        obj_search_result = (result['body']["ExecuteMSQLResult"]["ResultValue"]
                             ["ObjectSearchResult"])
        if obj_search_result is not None:
            search_results = obj_search_result["Objects"]
        else:
            return []

        if search_results is None:
            return []

        result_set = search_results["MemberSuiteObject"]

        all_objects = self.result_to_models(result)
        call_count = 1
        """
        continue to run queries as long as we
            - don't exceed the call call_count
            - don't see results that are less than the limited length (the end)
        """
        while call_count != max_calls and len(result_set) >= limit_to:

            record_index += len(result_set)  # should be `limit_to`
            result = run_object_query(self.client, base_object_query,
                                      record_index, limit_to, verbose)

            obj_search_result = (result['body']["ExecuteMSQLResult"]
                                 ["ResultValue"]["ObjectSearchResult"])
            if obj_search_result is not None:
                search_results = obj_search_result["Objects"]
            else:
                search_results = None

            if search_results is None:
                result_set = []
            else:
                result_set = search_results["MemberSuiteObject"]

            all_objects += self.result_to_models(result)
            call_count += 1

        return all_objects