コード例 #1
0
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}'})
コード例 #2
0
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}'})
コード例 #3
0
ファイル: user_route.py プロジェクト: StoneXue/mo
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
コード例 #4
0
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
コード例 #5
0
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})
コード例 #6
0
ファイル: app_route.py プロジェクト: KatarinaDuCouteau/mo
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})
コード例 #7
0
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)})
コード例 #8
0
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
コード例 #9
0
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())})
コード例 #10
0
ファイル: app_route.py プロジェクト: KatarinaDuCouteau/mo
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
コード例 #11
0
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,
        }
    })
コード例 #12
0
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
コード例 #13
0
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})
コード例 #14
0
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)})
コード例 #15
0
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)})