import logging from typing import List from watchmen.common.data_page import DataPage from watchmen.common.mongo.index import build_code_options from watchmen.common.storage.engine.storage_engine import get_client from watchmen.common.utils.data_utils import build_data_pages, build_collection_name client = get_client() log = logging.getLogger("app." + __name__) log.info("mongo template initialized") def create(collection_name, instance, base_model): collections = client.get_collection(collection_name) collections.insert_one(__convert_to_dict(instance)) return base_model.parse_obj(instance) def create_or_update(collection_name, query_dict, instance, base_model): collections = client.get_collection(collection_name) collections.update_one(query_dict, {"$set": __convert_to_dict(instance)}, upsert=True) return base_model.parse_obj(instance) def update_one(collection_name, query_dict, instance, base_model): collections = client.get_collection(collection_name) collections.update_one(query_dict, {"$set": __convert_to_dict(instance)})
from bson import regex from watchmen.auth.user_group import UserGroup from watchmen.common.pagination import Pagination from watchmen.common.snowflake.snowflake import get_surrogate_key from watchmen.common.storage.engine.storage_engine import get_client from watchmen.common.utils.data_utils import build_data_pages, check_fake_id db = get_client() user_groups = db.get_collection('user_groups') def get_user_group(user_group_id): return user_groups.find_one({"userGroupId": user_group_id}) def get_user_group_list_by_ids(user_group_ids: list): result = user_groups.find({"userGroupId": {"$in": user_group_ids}}) return list(result) def load_group_list_by_name(query_name): result = user_groups.find({"name": regex.Regex(query_name)}) return list(result) def create_user_group_storage(user_group: UserGroup): if user_group.userGroupId is None or check_fake_id(user_group.userGroupId): user_group.userGroupId = get_surrogate_key() if type(user_group) is not dict: user_group = user_group.dict()
def get_db(): return get_client()