def insert_envs(project_name): [user_ID, app_name] = project_name.split('+') try: AppService.insert_envs(user_ID, app_name) except DoesNotExist: return jsonify({"response": f'no app {project_name} or not an app'}) else: return jsonify({"response": f'insert_envs success {project_name}'})
def insert_envs(project_name): """ insert env api when jl container start :param project_name: :return: """ [user_ID, app_name] = project_name.split('+') try: AppService.insert_envs(user_ID, app_name) except DoesNotExist: return jsonify({"response": f'no app {project_name} or not an app'}) else: return jsonify({"response": f'insert_envs success {project_name}'})
def register(): data = request.get_json() user_ID = data['user_ID'] password = data['password'] email = data['email'] code = data.pop('code') captcha = data.pop("captcha") phone = data.pop('phone') data.pop('user_ID') data.pop('password') if user_ID is None or password is None or code is None: return jsonify({'response': 'invalid user or password'}), 400 # 检查user_ID phone email 是否被占用 if UserBusiness.check_exist({'user_ID': user_ID}): return jsonify({"response": { "error": "this user_ID has been used,please try an other one"}}), 400 if UserBusiness.check_exist({'phone': phone}): return jsonify({"response": { "error": "this phone number has been used,please try an other one"}}), 400 if UserBusiness.check_exist({'email': email}): return jsonify({"response": { "error": "this email has been used,please try an other one"}}), 400 # 检查 captcha try: res = user_service.verify_code(code=captcha, phone=phone) except Error: return jsonify({ "response": {'error': "验证码错误"} }), 400 # 建立用户并创建tutorial project try: added_user = user_service.register(user_ID, password, phone, code, **data) added_user = json_utility.convert_to_json(added_user.to_mongo()) added_user.pop('password') # 为新用户创建tutorial project from server3.service.project_service import ProjectService from server3.service.app_service import AppService user_token = create_access_token(identity=added_user["user_ID"]) AppService.create_tutorial_project( user_ID=added_user["user_ID"], user_token=user_token ) return jsonify({'response': added_user}), 200 except Error as e: return jsonify({ "response": {"error": e.args[0]} }), 400
def add(): """ :return: :rtype: """ if not request.json \ or 'name' not in request.json \ or 'type' not in request.json: return jsonify({'response': 'insufficient arguments'}), 400 user_token = request.headers.get('Authorization').split()[1] user_ID = get_jwt_identity() data = request.get_json() name = data.pop('name') type = "app" # data.pop('type') description = data.pop('description') tags = data.pop('tags', '') tags = str_utility.split_without_empty(tags) project = AppService.create_project(name, description, user_ID, tags=tags, type=type, user_token=user_token, **data) project = json_utility.convert_to_json(project.to_mongo()) return jsonify({'response': project}), 200
def deploy_in_docker(app_id): data = request.get_json() handler_file_path = data.get('file_path') commit_msg = data.get('commit_msg') project = AppService.deploy(app_id, commit_msg, handler_file_path) project = json_utility.convert_to_json(project.to_mongo()) return jsonify({"response": project})
def run_app(app_id): user_ID = get_jwt_identity() data = request.get_json() input_json = data["app"]["input"] print("input_json", input_json) result = AppService.run_app(app_id, input_json=input_json, user_ID=user_ID) return jsonify({"response": result})
def add_used_module(app_id): data = request.get_json() used_module = data.get('used_module') func = data.get('func') version = data.get('version') app = AppService.add_used_module(app_id, used_module, func, version) return jsonify({"response": convert_used_modules(app)})
def get_app(app_id): user_ID = get_jwt_identity() yml = request.args.get('yml') commits = request.args.get('commits') version = request.args.get('version') used_modules = request.args.get('used_modules') used_datasets = request.args.get('used_datasets') app = AppService.get_by_id(app_id, yml=yml, commits=commits, version=version, used_modules=used_modules) # 如果是私有项目,需要确定其登陆才能查看,否则返回error if app.privacy == 'private' and app.user.user_ID != user_ID: return jsonify({'response': 'error'}), 200 # 将app.user 更换为 user_ID 还是name? user_ID = app.user.user_ID if used_modules == 'true': app = convert_used_modules(app) if used_datasets == 'true': app = convert_used_datasets(app) if used_modules != 'true' and used_datasets != 'true': app = json_utility.convert_to_json(app.to_mongo()) app["user_ID"] = user_ID app["commits"].reverse() return jsonify({"response": app}), 200
def add_used_module(app_id): data = request.get_json() used_modules = data.get('used_modules', []) func = data.get('func') version = data.get('version') print(app_id) app = AppService.add_used_module(app_id, used_modules, func, version) return jsonify({"response": json_utility.convert_to_json(app.to_mongo())})
def get_app(app_id): yml = request.args.get('yml') commits = request.args.get('commits') app = AppService.get_by_id(app_id, yml=yml, commits=commits) # 将app.user 更换为 user_ID 还是name? user_ID = app.user.user_ID app = json_utility.convert_to_json(app.to_mongo()) app["user_ID"] = user_ID return jsonify({"response": app}), 200
def get_app_action_entity(app_id): action_entity = request.args.get("action_entity") page_no = int(request.args.get('page_no', 1)) page_size = int(request.args.get('page_size', 5)) at_objs = AppService.get_action_entity( app_id=app_id, action_entity=action_entity, page_no=page_no, page_size=page_size, ) objects = convert_action_entity(at_objs.objects, action_entity) return jsonify({ 'response': { "objects": objects, "page_size": at_objs.page_size, "page_no": at_objs.page_no, "count": at_objs.count, } })
def get_api_list(): """ 带搜索关键字的, :return: :rtype: """ user_ID = get_jwt_identity() page_no = int(request.args.get('page_no', 1)) page_size = int(request.args.get('page_size', 5)) search_query = request.args.get('search_query', None) default_max_score = float(request.args.get('max_score', 0.1)) try: api_list = AppService.list_projects( search_query=search_query, page_no=page_no, page_size=page_size, default_max_score=default_max_score, privacy=None, user_ID=None) except Warning as e: return jsonify({ "response": [], "message": e.args[0]["hint_message"] }), 200 except Error as e: return jsonify({"message": e.args[0]["hint_message"]}), 404 else: objects = api_list.objects for object in objects: object.user_ID = object.user.user_ID objects = json_utility.me_obj_list_to_json_list(objects) return jsonify({ "response": { "objects": objects, "count": api_list.count, "page_no": api_list.page_no, "page_size": api_list.page_size }, }), 200
def publish_in_docker(app_id, version): data = request.get_json() handler_file_path = data.get('file_path') project = AppService.publish(app_id, handler_file_path, version) project = json_utility.convert_to_json(project.to_mongo()) return jsonify({"response": project})
def remove_used_dataset(app_id): data = request.get_json() used_dataset = data.get('used_dataset') app = AppService.remove_used_dataset(app_id, used_dataset) return jsonify({"response": convert_used_datasets(app)})
def remove_used_module(app_id): data = request.get_json() used_module = data.get('used_module') version = data.get('version') app = AppService.remove_used_module(app_id, used_module, version) return jsonify({"response": convert_used_modules(app)})