示例#1
0
 def change_object(self):
     change = change_from_couch_row(
         self.change if self.change else {'id': self.doc_id})
     if self.change_metadata:
         change.metadata = ChangeMeta.wrap(self.change_metadata)
     change.document = None
     return change
示例#2
0
def change_meta_from_ledger_v2(ledger_ref, domain, deleted=False):
    return ChangeMeta(
        document_id=ledger_ref.as_id(),
        data_source_type=data_sources.LEDGER_V2,
        data_source_name='ledger-v2',  # todo: this isn't really needed.
        domain=domain,
        is_deletion=deleted,
    )
示例#3
0
def change_meta_from_hard_delete(document, data_source_type, data_source_name):
    return ChangeMeta(
        document_id=document['_id'],
        document_rev=document.get('_rev', None),
        data_source_type=data_source_type,
        data_source_name=data_source_name,
        is_deletion=True,
    )
def _change_meta_from_ledger_reference(domain, ledger_reference, source_name):
    return ChangeMeta(
        document_id=ledger_reference.as_id(),
        data_source_type=data_sources.SOURCE_SQL,
        data_source_name=source_name,
        document_type=topics.LEDGER,
        domain=domain,
        is_deletion=False,
    )
def change_meta_from_ledger_v1(stock_state, deleted=False):
    return ChangeMeta(
        document_id=stock_state.pk,
        data_source_type=data_sources.SOURCE_SQL,
        data_source_name=data_sources.LEDGER_V1,
        document_type=topics.LEDGER,
        domain=stock_state.domain,
        is_deletion=deleted,
    )
def change_meta_from_ledger_v2(ledger_ref, domain, deleted=False):
    return ChangeMeta(
        document_id=ledger_ref.as_id(),
        data_source_type=data_sources.SOURCE_SQL,
        data_source_name=data_sources.LEDGER_V2,
        document_type=topics.LEDGER,
        domain=domain,
        is_deletion=deleted,
    )
def publish_case_deleted(domain, case_id):
    producer.send_change(topics.CASE_SQL, ChangeMeta(
        document_id=case_id,
        data_source_type=data_sources.CASE_SQL,
        data_source_name='case-sql',  # todo: this isn't really needed.
        document_type='CommCareCase-Deleted',
        domain=domain,
        is_deletion=True,
    ))
def publish_form_deleted(domain, form_id):
    producer.send_change(topics.FORM_SQL, ChangeMeta(
        document_id=form_id,
        data_source_type=data_sources.FORM_SQL,
        data_source_name='form-sql',
        document_type='XFormInstance-Deleted',
        domain=domain,
        is_deletion=True,
    ))
def publish_location_saved(domain, location_id, is_deletion=False):
    change_meta = ChangeMeta(
        document_id=location_id,
        data_source_type='location',
        data_source_name='location',
        document_type=LOCATION_DOC_TYPE,
        domain=domain,
        is_deletion=is_deletion,
    )
    producer.send_change(topics.LOCATION, change_meta)
def change_meta_from_sql_case(case):
    return ChangeMeta(
        document_id=case.case_id,
        data_source_type=data_sources.SOURCE_SQL,
        data_source_name=data_sources.CASE_SQL,
        document_type='CommCareCase',
        document_subtype=case.type,
        domain=case.domain,
        is_deletion=case.is_deleted,
    )
示例#11
0
def _change_meta(data_row, source):
    return ChangeMeta(
        document_id=data_row.doc_id,
        data_source_type=data_sources.SOURCE_SQL,
        data_source_name=source,
        document_type=data_row.doc_type,
        document_subtype=data_row.doc_subtype,
        domain=data_row.domain,
        is_deletion=False,
    )
def change_meta_from_sql_form(form):
    return ChangeMeta(
        document_id=form.form_id,
        data_source_type=data_sources.SOURCE_SQL,
        data_source_name=data_sources.FORM_SQL,
        document_type=form.doc_type,
        document_subtype=form.xmlns,
        domain=form.domain,
        is_deletion=form.is_deleted,
    )
def publish_location_saved(domain, location_id, is_deletion=False):
    from corehq.apps.change_feed import data_sources
    change_meta = ChangeMeta(
        document_id=location_id,
        data_source_type=data_sources.SOURCE_SQL,
        data_source_name=data_sources.LOCATION,
        document_type=LOCATION_DOC_TYPE,
        domain=domain,
        is_deletion=is_deletion,
    )
    producer.send_change(topics.LOCATION, change_meta)
def publish_case_deleted(domain, case_id):
    producer.send_change(
        topics.CASE_SQL,
        ChangeMeta(
            document_id=case_id,
            data_source_type=data_sources.SOURCE_SQL,
            data_source_name=data_sources.CASE_SQL,
            document_type='CommCareCase-Deleted',
            domain=domain,
            is_deletion=True,
        ))
示例#15
0
def change_meta_from_synclog(synclog):
    from corehq.apps.change_feed import data_sources
    return ChangeMeta(
        document_id=synclog.synclog_id.hex,
        data_source_type=data_sources.SYNCLOG_SQL,
        data_source_name=data_sources.SYNCLOG_SQL,
        document_type='SYNCLOG_SQL',
        document_subtype=None,
        domain=synclog.domain,
        is_deletion=False,
    )
示例#16
0
def doc_to_change(doc):
    return Change(id=doc['_id'],
                  sequence_id='0',
                  document=doc,
                  metadata=ChangeMeta(
                      document_id=doc['_id'],
                      data_source_type=data_sources.SOURCE_COUCH,
                      data_source_name=data_sources.CASE_SQL,
                      document_type=doc['doc_type'],
                      document_subtype=doc.get('type'),
                      domain=doc['domain'],
                      is_deletion=False,
                  ))
示例#17
0
 def change_object(self):
     change = change_from_couch_row(self.change if self.change else {'id': self.doc_id})
     if self.change_metadata:
         change.metadata = ChangeMeta.wrap(self.change_metadata)
     change.document = None
     return change
示例#18
0
def change_meta_from_kafka_message(message):
    return ChangeMeta.wrap(json.loads(message))