bugfix
This commit is contained in:
parent
61f0b52f0f
commit
6367b545ba
44
ahserver/crudProcessor.py
Normal file
44
ahserver/crudProcessor.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import ujson as json
|
||||||
|
from .baseProcessor import BaseProcessor
|
||||||
|
from crud_engine.crud_engine import CRUDEngine
|
||||||
|
|
||||||
|
class CrudProcessor(BaseProcessor):
|
||||||
|
@classmethod
|
||||||
|
def isMe(self, name):
|
||||||
|
return name == 'crud'
|
||||||
|
|
||||||
|
def get_default_filter_data(self):
|
||||||
|
subffix = '.filterdata'
|
||||||
|
user = self.run_evn.get('user')
|
||||||
|
if user:
|
||||||
|
subffix = f'{subffix}.{user}'
|
||||||
|
f = f'{self.real_path}{subffix}'
|
||||||
|
if os.path.exists(f):
|
||||||
|
with codecs.open(f, 'r', 'utf-8') as ff:
|
||||||
|
d = json.load(ff)
|
||||||
|
return d
|
||||||
|
return None
|
||||||
|
|
||||||
|
async def path_call(self, request, params={}):
|
||||||
|
await self.set_run_env(request)
|
||||||
|
dic = {}
|
||||||
|
with codees.open(self.real_path, 'r', 'utf-8') as f:
|
||||||
|
dic = json.load(f)
|
||||||
|
x = request.path.split('/')
|
||||||
|
if len(x) >= 3:
|
||||||
|
act = x[-2]
|
||||||
|
if act in [':browser', ':filter', ':add', ':edit', ':delete']:
|
||||||
|
database = x[-4]
|
||||||
|
table = x[-3]
|
||||||
|
else:
|
||||||
|
database = x[-3]
|
||||||
|
table = x[-2]
|
||||||
|
act = ':browser'
|
||||||
|
default_filter_data = self.get_default_filter_data()
|
||||||
|
ce = CRUDEngine(database, table, dic, default_filter_data)
|
||||||
|
return await ce.dispatch(act)
|
||||||
|
raise HttpError(500)
|
||||||
|
|
||||||
|
async def datahandle(self, request):
|
||||||
|
self.content = await self.path_call(request)
|
||||||
|
|
@ -36,9 +36,9 @@ class FunctionProcessor(BaseProcessor):
|
|||||||
|
|
||||||
async def datahandle(self,request):
|
async def datahandle(self,request):
|
||||||
x = await self.path_call(request, self.path)
|
x = await self.path_call(request, self.path)
|
||||||
if isinstance(x,Response):
|
if isinstance(x,web.FileResponse):
|
||||||
self.retResponse = x
|
self.retResponse = x
|
||||||
elif isinstance(x,web.FileResponse):
|
elif isinstance(x,Response):
|
||||||
self.retResponse = x
|
self.retResponse = x
|
||||||
else:
|
else:
|
||||||
self.content = x
|
self.content = x
|
||||||
|
@ -33,6 +33,7 @@ from appPublic.timecost import TimeCost
|
|||||||
from appPublic.timeUtils import timestampstr
|
from appPublic.timeUtils import timestampstr
|
||||||
|
|
||||||
from .baseProcessor import getProcessor
|
from .baseProcessor import getProcessor
|
||||||
|
from .crudProcessor import CrudProcessor
|
||||||
from .xlsxdsProcessor import XLSXDataSourceProcessor
|
from .xlsxdsProcessor import XLSXDataSourceProcessor
|
||||||
from .sqldsProcessor import SQLDataSourceProcessor
|
from .sqldsProcessor import SQLDataSourceProcessor
|
||||||
from .functionProcessor import FunctionProcessor
|
from .functionProcessor import FunctionProcessor
|
||||||
|
Loading…
Reference in New Issue
Block a user