| 14 | return group_args |
| 15 | |
| 16 | async def save_parameter_args(session: SessionDep, request: Request): |
| 17 | allow_file_mapping = { |
| 18 | """ "test_logo": { "types": [".jpg", ".jpeg", ".png"], "size": 5 * 1024 * 1024 } """ |
| 19 | } |
| 20 | form_data = await request.form() |
| 21 | files = form_data.getlist("files") |
| 22 | json_text = form_data.get("data") |
| 23 | sys_args = [ |
| 24 | SysArgModel(**{**item, "pkey": f"{item['pkey']}"}) |
| 25 | for item in json.loads(json_text) |
| 26 | if "pkey" in item |
| 27 | ] |
| 28 | if not sys_args: |
| 29 | return |
| 30 | file_mapping = None |
| 31 | if files: |
| 32 | file_mapping = {} |
| 33 | for file in files: |
| 34 | origin_file_name = file.filename |
| 35 | file_name, flag_name = SQLBotFileUtils.split_filename_and_flag(origin_file_name) |
| 36 | file.filename = file_name |
| 37 | allow_limit_obj = allow_file_mapping.get(flag_name) |
| 38 | if allow_limit_obj: |
| 39 | SQLBotFileUtils.check_file(file=file, file_types=allow_limit_obj.get("types"), limit_file_size=allow_limit_obj.get("size")) |
| 40 | else: |
| 41 | raise Exception(f'The file [{file_name}] is not allowed to be uploaded!') |
| 42 | file_id = await SQLBotFileUtils.upload(file) |
| 43 | file_mapping[f"{flag_name}"] = file_id |
| 44 | |
| 45 | await save_group_args(session=session, sys_args=sys_args, file_mapping=file_mapping) |