Exemplo n.º 1
0
def on_join_room(data_doc_id: str):
    data_doc_id = int(data_doc_id)
    with DBSession() as session:
        assert_can_read(data_doc_id, session=session)
        data_doc = logic.get_data_doc_by_id(data_doc_id, session=session)
        verify_environment_permission([data_doc.environment_id])

        join_room(data_doc_id)
        update_user_list(data_doc_id, add=True)
Exemplo n.º 2
0
def _get_datadoc_notification_params(
    doc_id: int, is_success: bool, error_msg: str, export_urls: List[str], session=None
):
    datadoc = get_data_doc_by_id(doc_id, session=session)
    doc_title = datadoc.title or "Untitled"
    env_name = datadoc.environment.name
    doc_url = f"{QuerybookSettings.PUBLIC_URL}/{env_name}/datadoc/{doc_id}/"

    return dict(
        is_success=is_success,
        doc_title=doc_title,
        doc_url=doc_url,
        doc_id=doc_id,
        export_urls=export_urls,
        error_msg=error_msg,
    )
Exemplo n.º 3
0
def export_datadoc(doc_id: int, uid: int, exports: List, session=None):
    if not exports or len(exports) == 0:
        return []

    export_by_cell = group_export_by_cell_id(exports)
    datadoc = get_data_doc_by_id(doc_id, session=session)
    query_cells = datadoc.get_query_cells()
    export_urls = []
    for cell in query_cells:
        if cell.id not in export_by_cell:
            continue

        export_urls.extend(
            _export_query_cell(cell.id,
                               uid,
                               export_by_cell[cell.id],
                               session=session))

    return export_urls
Exemplo n.º 4
0
def update_data_doc_by_id(doc_id, session=None):
    index_name = ES_CONFIG["datadocs"]["index_name"]

    doc = get_data_doc_by_id(doc_id, session=session)
    if doc is None or doc.archived:
        try:
            _delete(index_name, id=doc_id)
        except Exception:
            LOG.error("failed to delete {}. Will pass.".format(doc_id))
    else:
        formatted_object = datadocs_to_es(doc, session=session)
        try:
            # Try to update if present
            updated_body = {
                "doc": formatted_object,
                "doc_as_upsert": True,
            }  # ES requires this format for updates
            _update(index_name, doc_id, updated_body)
        except Exception:
            LOG.error("failed to upsert {}. Will pass.".format(doc_id))