def build_storage(datasource: DataSource):
     storage_template = find_storage_template()
     if datasource.dataSourceType == "mongodb":
         from watchmen_boot.storage.mongo.mongo_client import MongoEngine
         engine = MongoEngine(datasource)
         return MongoTopicStorage(client=engine.get_engine(),
                                  storage_template=storage_template)
     elif datasource.dataSourceType == "mysql":
         from watchmen_boot.storage.mysql.mysql_client import MysqlEngine
         engine = MysqlEngine(datasource)
         return MysqlTopicStorage(client=engine.get_engine(),
                                  storage_template=storage_template)
     elif datasource.dataSourceType == "oracle":
         from watchmen_boot.storage.oracle.oracle_client import OracleEngine
         engine = OracleEngine(datasource)
         return OracleTopicStorage(client=engine.get_engine(),
                                   storage_template=storage_template)
예제 #2
0
from model.model.common.data_page import DataPage
from model.model.common.pagination import Pagination
from model.model.enum.enum import Enum

from watchmen_boot.guid.snowflake import get_surrogate_key
from watchmen.common.utils.data_utils import check_fake_id
from watchmen.database.find_storage_template import find_storage_template

ENUMS = "enums"

ENUM_ITEMS = "enum_items"

# template = find_template()

storage_template = find_storage_template()


def save_enum_to_storage(enum: Enum):
    if check_fake_id(enum.enumId):
        enum.enumId = get_surrogate_key()
        # enum.items = []
        # result = template.create(ENUMS, enum, Enum)
        result = storage_template.insert_one(enum, Enum, ENUMS)
        # items = __add_enum_id(items_copy, result.enumId)
        # save_enum_items_to_storage(items_copy, enum.name)
        return result
    else:
        # items_copy = enum.items.copy()
        # # enum.items = []
        # # items = __add_enum_id(items_copy, enum.enumId)
async def clear_table_metadata():
    find_storage_template().clear_metadata()
async def remove_topic_collection(collections: List[str],
                                  current_user: User = Depends(
                                      deps.get_current_user)):
    for collection in collections:
        find_storage_template().delete_topic_collection(collection)