예제 #1
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def get_user():

    username = request.args.get('username', "")

    Session, engine = dbconnect(db_options)
    session = Session()

    if username != "":
        users = session.query(User).filter(User.username == username).all()
    else:
        users = session.query(User).all()

    ret_users = []
    for u in users:
        ret_users.append({
            'id': u.id,
            'username': u.username,
            'first_name': u.first_name,
            'last_name': u.last_name,
            'email': u.email,
            'school_id': u.school_id,
            'created_on': u.created_on,
        })
        #users = map(lambda u: dict(u), users)
    return jsonify(ret_users)
예제 #2
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def modify_club():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    clubID = j.get('id')
    matchingClub = session.query(Club).filter(Club.id == clubID).one_or_none()
    if matchingClub:
        if j.get('name') != None:
            matchingClub.name = j.get('name')
        if j.get('school_id') != None:
            matchingClub.school_id = j.get('school_id')
        if j.get('description') != None:
            matchingClub.description = j.get('description')
        if j.get('category') != None:
            matchingClub.category = j.get('category')
        if j.get('location') != None:
            matchingClub.location = j.get('location')
        if j.get('usualTime') != None:
            matchingClub.usualTime = j.get('usualTime')
        if j.get('img_type') != None:
            matchingclub.img_type = j.get('img_type')

        session.commit()
        return jsonify({'id': clubID})
    else:
        response = jsonify({'message': 'Club not found'})
        response.status_code = 404
        return response
예제 #3
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def modify_user():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    userID = j.get('id')
    matchingUser = session.query(User).filter(User.id == userID).one_or_none()
    if matchingUser:
        if j.get('first_name') != None:
            matchingUser.first_name = j.get('first_name')
        if j.get('last_name') != None:
            matchingUser.last_name = j.get('last_name')
        if j.get('username') != None:
            matchingUser.username = j.get('username')
        if j.get('school_id') != None:
            matchingUser.school_id = j.get('school_id')
        if j.get('email') != None:
            matchingUser.email = j.get('email')
        session.commit()
        return jsonify({'id': matchingUser.id})
    else:
        response = jsonify({'message': 'User not found'})
        response.status_code = 404
        return response
예제 #4
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def create_position():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    position_id = get_or_create_position(session, j['position_type'])
    session.commit()
    return jsonify({'id': position_id})
예제 #5
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def create_message():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    message = Message(club_id=j.get('club_id'), message=j.get('message'))
    session.add(message)
    session.commit()
    return jsonify({'id': message.id})
예제 #6
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def get_positions():
    Session, engine = dbconnect(db_options)
    session = Session()
    positions = session.query(Position).all()
    app.logger.info(positions)
    formatted_positions = []
    for p in positions:
        formatted_positions.append({'position_type': p.position_type})
    response = Response(json.dumps(formatted_positions))
    response.headers['Access-Control-Allow-Origin'] = '*'
    return response
예제 #7
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def create_admin():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    admin = UserClubPositionMapping(user_id=j.get('user_id'),
                                    club_id=j.get('club_id'),
                                    position_id=j.get('position_id'))
    session.add(admin)
    session.commit()
    return jsonify({'id': admin.id})
예제 #8
0
def create_club():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Sesson, engine = dbconnect(db_options)
    session = Sesson()
    club = Club(name=j.get('name'),
                school_id=get_or_create_school(session, j.get('school')))
    session.add(club)
    session.flush()
    session.commit()
    return jsonify({'id': club.id})
예제 #9
0
def get_club():
    name = request.args.get('name')
    Sesson, engine = dbconnect(db_options)
    session = Sesson()
    clubs = session.query(Club).filter(Club.name == name).all()
    ret_clubs = []
    for c in clubs:
        ret_clubs.append({
            'id': c.id,
            'username': c.name,
            'school': c.school_id,
        })
    return jsonify(ret_clubs)
예제 #10
0
def create_user():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Sesson, engine = dbconnect(db_options)
    session = Sesson()
    user = User(first_name=j.get('first_name'),
                last_name=j.get('last_name'),
                username=j.get('username'),
                school_id=get_or_create_school(session, j.get('school')),
                email=j.get('email'))
    session.add(user)
    session.flush()
    session.commit()
    return jsonify({'id': user.id})
예제 #11
0
def get_user():
    username = request.args.get('username')
    Sesson, engine = dbconnect(db_options)
    session = Sesson()
    users = session.query(User).filter(User.username == username).all()
    ret_users = []
    for u in users:
        ret_users.append({
            'id': u.id,
            'username': u.username,
            'first': u.first_name,
            'last': u.last_name
        })
    #users = map(lambda u: dict(u), users)
    return jsonify(ret_users)
예제 #12
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def delete_user():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    userID = j.get('id')
    matchingUser = session.query(User).filter(User.id == userID).one_or_none()
    if matchingUser:
        session.delete(matchingUser)
        session.commit()
        return jsonify({'id': matchingUser.id})
    else:
        response = jsonify({'message': 'User not found'})
        response.status_code = 404
        return response
예제 #13
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def create_school():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    school_id = get_or_create_school(session, j['name'], j['address'],
                                     j['email'], j['phone']).id
    session.commit()
    return jsonify({
        'id': school_id,
        'name': j.get('name'),
        'address': j.get('address'),
        'email': j.get('email'),
        'phone': j.get('phone')
    })
예제 #14
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def delete_club():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    clubID = j.get('id')
    matchingClub = session.query(Club).filter(Club.id == clubID).one_or_none()
    if matchingClub:
        session.delete(matchingClub)
        session.commit()
        return jsonify({'id': clubID})
    else:
        response = jsonify({'message': 'Club not found'})
        response.status_code = 404
        return response
예제 #15
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def get_message():
    club_id = request.args.get('club_id')
    Session, engine = dbconnect(db_options)
    session = Session()
    messages = session.query(Message).filter(Message.club_id == club_id).all()
    #print (messages)
    ret_messages = []
    for m in messages:
        ret_messages.append({
            'id': m.id,
            'club_id': m.club_id,
            'message': m.message
        })
    response = Response(json.dumps(ret_messages))
    response.headers['Access-Control-Allow-Origin'] = '*'
    return response
예제 #16
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def create_club():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()

    club = Club(name=j.get('name'),
                school_id=j.get('school_id'),
                description=j.get('description'),
                category=j.get('category'),
                location=j.get('location'),
                usualTime=j.get('usualTime'),
                img_type=j.get('img_type', None))
    session.add(club)
    session.commit()
    return jsonify({'id': club.id})
예제 #17
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def subscribe():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    link = UserClubPositionMapping(user_id=j.get('user_id'),
                                   club_id=j.get('club_id'),
                                   position_id=j.get('position_id'))

    session.add(link)
    session.commit()
    return jsonify({
        'user_id': link.user_id,
        'club_id': link.club_id,
        'position_id': link.position_id
    })
예제 #18
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def subscriptions():
    Session, engine = dbconnect(db_options)
    session = Session()

    subscriptions = session.query(UserClubPositionMapping).all()

    ret_subs = []
    for s in subscriptions:
        ret_subs.append({
            'id': s.id,
            'user_id': s.user_id,
            'club_id': s.club_id,
            'position_id': s.position_id,
            'created_on': s.created_on,
        })
        #users = map(lambda u: dict(u), users)
    return jsonify(ret_subs)
예제 #19
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def get_schools():
    Session, engine = dbconnect(db_options)
    session = Session()
    schools = session.query(School).all()
    app.logger.info(schools)
    formatted_schools = []
    for s in schools:
        formatted_schools.append({
            'id': s.id,
            'name': s.name,
            'address': s.address,
            'email': s.email,
            'phone': s.phone
        })
    response = Response(json.dumps(formatted_schools))
    response.headers['Access-Control-Allow-Origin'] = '*'
    return response
예제 #20
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def get_admins():
    Session, engine = dbconnect(db_options)
    session = Session()
    admins = session.query(UserClubPositionMapping).all()
    users = session.query(User).all()
    app.logger.info(admins)
    formatted_admins = []
    for a in admins:
        for u in users:
            if (a.user_id == u.user_id):
                formatted_admins.append({
                    'user_id': u.user_id,
                    'first_name': u.first_name,
                    'last_name': u.last_name,
                    'username': u.username,
                    'school_id': u.school_id,
                    'email': u.email
                })
    response = Response(json.dumps(formatted_admins))
    response.headers['Access-Control-Allow-Origin'] = '*'
    return response
예제 #21
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def get_club():

    schoolID = request.args.get('school_id')
    Session, engine = dbconnect(db_options)
    session = Session()
    clubs = session.query(Club).filter(Club.school_id == schoolID).all()
    ret_clubs = []
    for c in clubs:
        ret_clubs.append({
            'id': c.id,
            'name': c.name,
            'description': c.description,
            'school_id': c.school_id,
            'category': c.category,
            'location': c.location,
            'usualTime': c.usualTime,
            'img_type': c.img_type
        })

    response = jsonify(ret_clubs)
    response.headers['Access-Control-Allow-Origin'] = '*'
    return response
예제 #22
0
파일: app.py 프로젝트: wu-rymd/SUTS-ClubHub
def unsubscribe():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    userID = j.get('user_id')
    clubID = j.get('club_id')
    # comma separated list of bool expr are AND
    matchingLink = session.query(UserClubPositionMapping).filter(
        UserClubPositionMapping.user_id == userID,
        UserClubPositionMapping.club_id == clubID).one_or_none()
    if not matchingLink:
        response = jsonify(
            {'message': 'Subscription between user ID and club ID not found'})
        response.status_code = 202
        return response
    session.delete(matchingLink)
    session.commit()
    return jsonify({
        'user_id': matchingLink.user_id,
        'club_id': matchingLink.club_id,
        'position_id': matchingLink.position_id
    })