Skip to content

Commit 61fe14b

Browse files
committed
feat: Support internal functionlib
--story=1017939 --user=刘瑞斌 【函数库】- 支持 系统内置函数 https://www.tapd.cn/57709429/s/1665943
1 parent 4734761 commit 61fe14b

File tree

2 files changed

+25
-32
lines changed

2 files changed

+25
-32
lines changed

apps/function_lib/serializers/function_lib_serializer.py

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ class EditFunctionLib(serializers.Serializer):
107107

108108
init_field_list = serializers.ListField(required=False, default=list)
109109

110-
init_params = serializers.JSONField(required=False, default=dict)
111-
112110
is_active = serializers.BooleanField(required=False, error_messages=ErrMessage.char(_('Is active')))
113111

114112

@@ -171,15 +169,7 @@ def list(self, with_valid=True):
171169
self.is_valid(raise_exception=True)
172170
rs = []
173171
for item in self.get_query_set():
174-
if item.init_params:
175-
password_fields = [i["field"] for i in item.init_field_list if i.get("input_type") == "PasswordInput"]
176-
init_params = json.loads(rsa_long_decrypt(item.init_params))
177-
for k in init_params:
178-
if k in password_fields:
179-
init_params[k] = encryption(init_params[k])
180-
else:
181-
init_params = {}
182-
data = {**FunctionLibModelSerializer(item).data, 'init_params': init_params}
172+
data = {**FunctionLibModelSerializer(item).data, 'init_params': None}
183173
rs.append(data)
184174
return rs
185175

@@ -188,18 +178,10 @@ def page(self, current_page: int, page_size: int, with_valid=True):
188178
self.is_valid(raise_exception=True)
189179

190180
def post_records_handler(row):
191-
if row.init_params:
192-
password_fields = [i["field"] for i in row.init_field_list if i.get("input_type") == "PasswordInput"]
193-
init_params = json.loads(rsa_long_decrypt(row.init_params))
194-
for k in init_params:
195-
if k in password_fields:
196-
init_params[k] = encryption(init_params[k])
197-
else:
198-
init_params = {}
199181
return {
200182
**FunctionLibModelSerializer(row).data,
201183
'added': row.added,
202-
'init_params': init_params
184+
'init_params': None
203185
}
204186

205187
return page_search(current_page, page_size, self.get_query_set(),
@@ -304,13 +286,14 @@ def edit(self, instance, with_valid=True):
304286
field in instance and instance.get(field) is not None)}
305287

306288
function_lib = QuerySet(FunctionLib).filter(id=self.data.get('id')).first()
307-
if 'init_params' in edit_dict and function_lib.init_params:
308-
old_init_params = json.loads(rsa_long_decrypt(function_lib.init_params))
309-
for key in edit_dict['init_params']:
310-
if edit_dict['init_params'][key] == encryption(old_init_params[key]):
311-
edit_dict['init_params'][key] = old_init_params[key]
312-
313-
edit_dict['init_params'] = rsa_long_encrypt(json.dumps(edit_dict['init_params']))
289+
if 'init_params' in edit_dict:
290+
if function_lib.init_params:
291+
old_init_params = json.loads(rsa_long_decrypt(function_lib.init_params))
292+
for key in edit_dict['init_params']:
293+
if edit_dict['init_params'][key] == encryption(old_init_params[key]):
294+
edit_dict['init_params'][key] = old_init_params[key]
295+
296+
edit_dict['init_params'] = rsa_long_encrypt(json.dumps(edit_dict['init_params']))
314297
QuerySet(FunctionLib).filter(id=self.data.get('id')).update(**edit_dict)
315298
return self.one(False)
316299

@@ -321,9 +304,15 @@ def one(self, with_valid=True):
321304
Q(user_id=self.data.get('user_id')) | Q(permission_type='PUBLIC')).exists():
322305
raise AppApiException(500, _('Function does not exist'))
323306
function_lib = QuerySet(FunctionLib).filter(id=self.data.get('id')).first()
324-
function_lib.init_params = json.loads(rsa_long_decrypt(function_lib.init_params))
325-
326-
return FunctionLibModelSerializer(function_lib).data
307+
if function_lib.init_params:
308+
function_lib.init_params = json.loads(rsa_long_decrypt(function_lib.init_params))
309+
if function_lib.init_field_list:
310+
password_fields = [i["field"] for i in function_lib.init_field_list if i.get("input_type") == "PasswordInput"]
311+
if function_lib.init_params:
312+
for k in function_lib.init_params:
313+
if k in password_fields:
314+
function_lib.init_params[k] = encryption(function_lib.init_params[k])
315+
return {**FunctionLibModelSerializer(function_lib).data, 'init_params': function_lib.init_params}
327316

328317
def export(self, with_valid=True):
329318
try:

ui/src/views/function-lib/index.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,9 @@ function openCreateDialog(data?: any) {
328328
title.value = data ? t('views.functionLib.editFunction') : t('views.functionLib.createFunction')
329329
if (data) {
330330
if (data?.permission_type !== 'PUBLIC' || canEdit(data)) {
331-
FunctionFormDrawerRef.value.open(data)
331+
functionLibApi.getFunctionLibById(data?.id).then((res) => {
332+
FunctionFormDrawerRef.value.open(res.data)
333+
})
332334
}
333335
} else {
334336
FunctionFormDrawerRef.value.open(data)
@@ -447,7 +449,9 @@ function configPermission(item: any) {
447449
}
448450
449451
function configInitParams(item: any) {
450-
InitParamDrawerRef.value.open(item)
452+
functionLibApi.getFunctionLibById(item?.id).then((res) => {
453+
InitParamDrawerRef.value.open(res.data)
454+
})
451455
}
452456
453457
function importFunctionLib(file: any) {

0 commit comments

Comments
 (0)