def _paginated_search_generator(paginated_search: PaginatedSearch): if paginated_search.num_records == 0: return num_pages = paginated_search.total_pages logger.debug('total pages = %d, records in page = %d', paginated_search.total_pages, paginated_search.num_records) logger.debug(f'current page index {paginated_search.page_index}') logger.debug('going to page %d', 0) for p in range(1, num_pages + 1): logger.debug('going to page %d', p) paginated_search.goto_page(p) logger.debug(f'current page index {paginated_search.page_index}') yield paginated_search.records
def test_search_all(ns, type_name): paginated_search = PaginatedSearch(client=ns, type_name=type_name, pageSize=20) assert len(paginated_search.records ) > 0, 'There are no records of type {}'.format(type_name) logger.debug('record = %s', str(paginated_search.records[0]))
def netsuite_search( self, type_name: str, search_value: str, operator: str = "contains", page_size: int = 5, ) -> PaginatedSearch: """Search Netsuite for value from a type. Default operator is `contains`. :param type_name: search target type name :param search_value: what to search for within type :param operator: name of the operation, defaults to "contains" :param page_size: result items within one page, defaults to 5 :return: paginated search object """ # pylint: disable=E1101 record_type_search_field = self.client.SearchStringField( searchValue=search_value, operator=operator) basic_search = self.client.basic_search_factory( type_name, recordType=record_type_search_field) paginated_search = PaginatedSearch( client=self.client, type_name=type_name, basic_search=basic_search, pageSize=page_size, ) return paginated_search
def get_all_generator(self): record_type_search_field = self.ns_client.SearchStringField(searchValue='VendorBill', operator='contains') basic_search = self.ns_client.basic_search_factory('Transaction', recordType=record_type_search_field) paginated_search = PaginatedSearch(client=self.ns_client, type_name='Transaction', basic_search=basic_search, pageSize=20) return self._paginated_search_to_generator(paginated_search=paginated_search)
def get_all_by_id(self, internalId): cr_type = self.ns_client.CustomRecordSearchBasic( recType=self.ns_client.CustomRecordType( internalId=internalId ) ) ps = PaginatedSearch(client=self.ns_client, type_name='CustomRecordType', search_record=cr_type, pageSize=20) return list(self._paginated_search_to_generator(paginated_search=ps))
def get_all_generator(self, page_size=100, last_modified_date=None): search_record = self.ns_client.basic_search_factory( type_name="Customer", lastModifiedDate=last_modified_date) ps = PaginatedSearch(client=self.ns_client, type_name='Customer', pageSize=page_size, search_record=search_record) return self._paginated_search_to_generator(ps)
def get_all_generator(self): record_type_search_field = self.ns_client.SearchStringField( searchValue='ExpenseReport', operator='contains') basic_search = self.ns_client.basic_search_factory( 'Employee', recordType=record_type_search_field) paginated_search = PaginatedSearch(client=self.ns_client, type_name='Employee', basic_search=basic_search, pageSize=20) return self._paginated_search_to_generator( paginated_search=paginated_search)
def test_search_vendor_bills(ns): record_type_search_field = ns.SearchStringField(searchValue='VendorBill', operator='contains') basic_search = ns.basic_search_factory('Transaction', recordType=record_type_search_field) paginated_search = PaginatedSearch(client=ns, type_name='Transaction', basic_search=basic_search, pageSize=5) assert len(paginated_search.records) > 0, 'There are no vendor bills' logger.debug('record = %s', str(paginated_search.records[0]))
def netsuite_search_all(self, type_name: str, page_size: int = 20) -> PaginatedSearch: """Search Netsuite for a type results. :param type_name: search target type name :param page_size: result items within one page, defaults to 5 :return: paginated search object """ paginated_search = PaginatedSearch(client=self.client, type_name=type_name, pageSize=page_size) return paginated_search
def get_all_generator(self, page_size=100, last_modified_date=None): record_type_search_field = self.ns_client.SearchStringField( searchValue='SalesOrder', operator='contains') basic_search = self.ns_client.basic_search_factory( 'Transaction', lastModifiedDate=last_modified_date, recordType=record_type_search_field) paginated_search = PaginatedSearch(client=self.ns_client, basic_search=basic_search, type_name='Transaction', pageSize=page_size) return self._paginated_search_to_generator( paginated_search=paginated_search)
def count(self): ps = PaginatedSearch(client=self.ns_client, type_name=self.type_name, pageSize=10, perform_search=True) return ps.total_records
def _search_all_generator(self, page_size): ps = PaginatedSearch(client=self.ns_client, type_name=self.type_name, pageSize=page_size) return self._paginated_search_to_generator(paginated_search=ps)
def get_record(ns, type_name): paginated_search = PaginatedSearch(client=ns, type_name=type_name, pageSize=20) return paginated_search.records[0]