コード例 #1
0
ファイル: app.py プロジェクト: asmakhaled/fsnd-capstone
    def assign(a, b):
        body = request.get_json()
        reviewer_id = body.get('reviewer_id', None)
        project_id = body.get('project_id', None)
        try:
            reviewer = Reviewer.query.filter_by(id=reviewer_id).one_or_none()
            project = Project.query.filter_by(id=project_id).one_or_none()
            previous_assignments = Assignment.query.filter(
                Assignment.reviewer_id == reviewer_id,
                Assignment.project_id == project_id).count()

            if previous_assignments > 0:
                raise AuthError({
                    'code': 'Bad request',
                    'description': "this assignment is already existent"
                }, 400)

            if reviewer is None:
                raise AuthError({
                    'code': 'Bad request',
                    'description': "reviewer does not exist"
                }, 400)

            if project is None:
                raise AuthError({
                    'code': 'Bad request',
                    'description': "project does not exist"
                }, 400)

            assignment = Assignment()
            assignment.reviewer_id = reviewer_id
            assignment.project_id = project_id
            assignment.insert()
            return jsonify({
                'success': True,
                'assignment': assignment.format()
            })
        except Exception as e:
            print("exception error post reviewer", e)
            print(e)
            if isinstance(e, AuthError):
                raise e
            abort(422)