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)
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, )
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
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))