feat(project):change mongo
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
from typing import List
|
||||
|
||||
from starlette.responses import FileResponse
|
||||
|
||||
from .engines import MsSqlEngine, MongoEngine, PgSqlEngine, AbstractEngine
|
||||
from .utils.Models import TableEngineInput
|
||||
from .utils.Models import WorkingMode, JoinModel
|
||||
from ..table_engine import TableEngineExport
|
||||
from .utils.Models import TableEngineExport
|
||||
|
||||
|
||||
class NewTableEngine:
|
||||
def __init__(self, query_class, model, inputs, mode, engine: AbstractEngine, extra_filter,
|
||||
default_sort_by, joins, search_cols, options=None, soft_deleted=False):
|
||||
default_sort_by, joins, search_cols, options=None, soft_deleted=False, unselect={}, return_query=False):
|
||||
self.model = model
|
||||
self.query_class = query_class
|
||||
self.mode = mode
|
||||
@@ -18,12 +20,15 @@ class NewTableEngine:
|
||||
self.input = TableEngineInput(**inputs if inputs else {})
|
||||
else:
|
||||
self.input = TableEngineInput(**inputs.dict() if inputs else {})
|
||||
|
||||
self.input.extra_filter = extra_filter
|
||||
self.default_sort_by = default_sort_by
|
||||
self.joins = joins
|
||||
self.soft_deleted = soft_deleted
|
||||
self.options = options
|
||||
self.search_cols = search_cols
|
||||
self.unselect = unselect
|
||||
self.return_query = return_query
|
||||
self.engine = engine(self)
|
||||
|
||||
@staticmethod
|
||||
@@ -33,10 +38,10 @@ class NewTableEngine:
|
||||
mode: WorkingMode = WorkingMode.Development,
|
||||
extra_filter=None,
|
||||
soft_deleted=False,
|
||||
default_sort_by=None, joins=None, search_cols=[]):
|
||||
default_sort_by=None, joins=None, search_cols=[] ,unselect={}, return_query=False):
|
||||
return NewTableEngine(query_class, model, inputs, mode, engine=MongoEngine, extra_filter=extra_filter,
|
||||
default_sort_by=default_sort_by, joins=joins, search_cols=search_cols,
|
||||
soft_deleted=soft_deleted)
|
||||
soft_deleted=soft_deleted,unselect=unselect, return_query=return_query)
|
||||
|
||||
@staticmethod
|
||||
def mssql(query_class, model, inputs, mode: WorkingMode = WorkingMode.Development, extra_filter=None,
|
||||
@@ -53,15 +58,19 @@ class NewTableEngine:
|
||||
async def exe(self):
|
||||
return await self.engine.exe()
|
||||
|
||||
async def to_dict(self) -> TableEngineExport:
|
||||
async def to_dict(self):
|
||||
if self.return_query:
|
||||
query = await self.exe()
|
||||
return query
|
||||
rows, count = await self.exe()
|
||||
self.input.extra_filter = None
|
||||
del self.engine
|
||||
self.set_export_file()
|
||||
return TableEngineExport(
|
||||
rows=rows,
|
||||
page=self.input.virtual_page(),
|
||||
total=count,
|
||||
te=self.input
|
||||
te=self.raw_input
|
||||
)
|
||||
|
||||
def add_extra_filter(self, filters):
|
||||
@@ -75,3 +84,10 @@ class NewTableEngine:
|
||||
def set_custom_entities(self, entities=None):
|
||||
self.engine.custom_entities = entities
|
||||
return self
|
||||
|
||||
def set_export_file(self):
|
||||
try:
|
||||
self.raw_input['e']['d'] = self.input.e.d
|
||||
return self
|
||||
except Exception as e:
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user