def iter_repeat_records_by_repeater(domain, repeater_id, chunk_size=1000): from corehq.motech.repeaters.models import RepeatRecord kwargs = { 'include_docs': True, 'reduce': False, 'descending': True, } kwargs.update(_get_startkey_endkey_all_records(domain, repeater_id)) for doc in paginate_view(RepeatRecord.get_db(), 'repeaters/repeat_records', chunk_size, **kwargs): yield RepeatRecord.wrap(doc['doc'])
def _get_couch_repeat_records_by_payload_id(domain, payload_id, include_docs): from .models import RepeatRecord results = RepeatRecord.get_db().view( 'repeaters/repeat_records_by_payload_id', startkey=[domain, payload_id], endkey=[domain, payload_id], include_docs=include_docs, reduce=False, descending=True).all() if include_docs: return [RepeatRecord.wrap(result['doc']) for result in results] return [result['id'] for result in results]
def iterate_repeat_records(due_before, chunk_size=10000, database=None): from .models import RepeatRecord json_now = json_format_datetime(due_before) view_kwargs = { 'reduce': False, 'startkey': [None], 'endkey': [None, json_now, {}], 'include_docs': True } for doc in paginate_view(RepeatRecord.get_db(), 'repeaters/repeat_records_by_next_check', chunk_size, **view_kwargs): yield RepeatRecord.wrap(doc['doc'])
def iterate_repeat_records_for_ids(doc_ids): from .models import RepeatRecord return (RepeatRecord.wrap(doc) for doc in iter_docs(RepeatRecord.get_db(), doc_ids))