def create_user_group_relation():
    request_params = request.get_json()
    user_id = request_params.get('userId')
    group_id = request_params.get('groupId')

    if user_id is None:
        return jsonify(
            userMessage="유저를 선택하셔야 합니다."
        ), 400

    if group_id is None:
        return jsonify(
            userMessage="그룹을 선택하셔야 합니다."
        ), 400

    q = db.session.query(UserGroupRelation).filter(UserGroupRelation.user_id == user_id,
                                                   UserGroupRelation.group_id == group_id)

    if q.count() > 0:
        return jsonify(
            userMeesage="이미 등록되어있는 반입니다."
        ), 409

    user_group_relation = UserGroupRelation(user_id=user_id, group_id=group_id)
    db.session.add(user_group_relation)
    db.session.commit()

    return jsonify(
        data=user_group_relation.serialize()
    ), 200
Beispiel #2
0
def sign_up():
    request_params = request.get_json()
    email = request_params.get('email')
    password = request_params.get('password')
    name = request_params.get('name')
    group_id = request_params.pop('groupId')

    # TODO  regex, password validation need
    if email is None:
        return jsonify(
            userMessage="이메일 입력을 확인해주세요."
        ), 400

    if password is None:
        return jsonify(
            userMessage="비밀번호 입력을 확인해주세요."
        ), 400

    if name is None:
        return jsonify(
            userMessage="이름 입력을 확인해주세요."
        ), 400

    q = db.session.query(User) \
        .filter(User.email == email)

    if q.count() > 0:
        return jsonify(
            userMeesage="이미 등록된 이메일입니다."
        ), 409

    user = User.add(request_params)

    if user is None:
        return jsonify(
            userMessage="server error, try again"
        ), 400

    # user_group_relation 추가
    if group_id != 0:
        user_group_relation = UserGroupRelation(user_id=int(user.id), group_id=int(group_id))
    else:
        user_group_relation = UserGroupRelation(user_id=int(user.id))
    db.session.add(user_group_relation)
    db.session.commit()

    token = user.get_token()
    user_data = user.serialize()
    user_data['user_group_relation'] = user_group_relation.serialize()

    return jsonify(
        data=user_data,
        token=token
    ), 201
def get_user_group_relation_by_id(user_group_relation_id):
    try:
        user_group_relation = UserGroupRelation.get_query(
            filter_condition=(UserGroupRelation.id == user_group_relation_id))
        return jsonify(
            data=SerializableModelMixin.serialize_row(user_group_relation.one())
        ), 200

    except:
        return jsonify(
            userMessage="해당 관계를 찾을 수 없습니다."
        ), 404
def get_user_group_relations():
    request_params = request.get_json()
    if request.args.get('userId') is not None:
        user_id = int(request.args.get('userId'))
    else:
        user_id = 0

    if request.args.get('groupId'):
        group_id = int(request.args.get('groupId'))
    else:
        group_id = 0

    if user_id >= 1 and group_id >= 1:
        filter_condition = (UserGroupRelation.user_id == user_id, UserGroupRelation.group_id == group_id)

    elif user_id >= 1 >= group_id:
        filter_condition = (UserGroupRelation.user_id == user_id)
    elif group_id >= 1 >= user_id:
        filter_condition = (UserGroupRelation.group_id == group_id)
    else:
        filter_condition = None

    user_group_relations = UserGroupRelation.get_query(filter_condition=filter_condition)

    prev_group_id = None
    group_obj = {}
    user_object = {}
    for row in user_group_relations:
        (group, course, user_group, user) = row
        if prev_group_id != group.id:
            group_id = group.id
            group_obj[group_id] = group.serialize()
            group_obj[group_id]['course'] = course.serialize()
            group_obj[group_id]['users'] = []
            prev_group_id = group_id
        if user is not None:
            user_object = user.serialize()
            user_object['userGroup'] = user_group.serialize()
            group_obj[group_id]['users'].append(user_object)

    return jsonify(
        data=group_obj.values()
        # data = map(SerializableModelMixin.serialize_row, user_group_relations)
    ), 200