Пример #1
0
def create_course():
    data = request.get_json() or {}
    try:
        if 'name' not in data or 'id' not in data or 'oid' not in data:
            return bad_request('科目名称或编号不能为空!')
        else:
            data['name'] = (data['name']).strip()
            data['id'] = (data['id']).strip()
            if len(data['name']) == 0:
                return bad_request('科目名称不能为空!')
            if len(data['id']) == 0:
                return bad_request('班级编号不能为空!')
        if request.method == 'POST':
            if Course.query.filter_by(id=data['id']).first():
                return bad_request('该班级编号已经存在!')
            course = Course()
        elif request.method == 'PUT':
            course = Course.query.filter_by(id=data['oid']).first()

        course.name = data['name']
        course.id = data['id']
        course.grade = data['grade']
        timestamp = data['start_date']
        course.start_date = datetime.datetime.fromtimestamp(timestamp)
        timestamp = data['end_date']
        course.end_date = datetime.datetime.fromtimestamp(timestamp)
        course.start_time = datetime.datetime.fromtimestamp(data['start_time'])
        course.end_time = datetime.datetime.fromtimestamp(data['end_time'])
        course.comment = data['comment']

        if request.method == 'POST':
            db.session.add(course)
        db.session.commit()
        response = jsonify(course.to_dict())
        if request.method == 'POST':
            response.status_code = 201
        elif request.method == 'PUT':
            response.status_code = 202
        response.headers['Location'] = url_for('api.get_courses', id=course.id)
        return response
    except:
        return error_response(500)