Example #1
0
def add_game():
    title = request.form['title']
    platform_id = str(request.form['platform_id'])
    games = Game.query.filter(Game.title.like(title)).all()
    exists = False
    for game in games:
        print "games like ", title, game.title
        if game.title == title and str(game.platform_id) == platform_id:
            exists = True
    if exists:
        return backend.get_error_response(
            message="A game with that title and platform already exists.",
            status_code=400)
    platform = db_session.query(Platform).get(request.form['platform_id'])
    if platform == None:
        print "Platform doesn't exist"
        return backend.get_error_response(message="Platform ID invalid.",
                                          status_code=401)
    game = Game(request.form['title'], platform)
    game.edited_by = g.backend_user.email
    db_session.add(game)
    db_session.commit()
    return jsonify({
        "game_id": game.g_id,
        "game_title": game.title,
        "platform": game.platform.name,
        "platform_id": game.platform.p_id,
        "info": game.info,
        "picture": game.picture,
        "release_date": game.release_date.strftime("%Y-%m-%d"),
        "developer": game.developer,
        "publisher": game.publisher,
        "edited_by": game.edited_by,
        "relations": game.relations
    })
Example #2
0
def edit_game(id):
    game = db_session.query(Game).get(id)
    game.title = request.form['title']
    platform = db_session.query(Platform).get(request.form['platform_id'])
    if not platform:
        return backend.get_error_response(
            message="Platform ID invalid.",
            status_code=400)
    game.platform = platform
    game.platform_id = platform.p_id
    games = Game.query.filter(Game.title.like(game.title)).all()
    exists = False
    for ga in games:
        print "game platform:", game.platform_id, " ", game.g_id
        print "ga platform:", ga.platform_id, " ", game.g_id
        if ga.g_id != game.g_id and game.title == ga.title and str(game.platform_id) == str(ga.platform_id):
            exists = True
    if exists:
        return backend.get_error_response(
                message="A game with that title and platform already exists.",
                status_code=400)
    game.picture = request.form['picture']
    game.info = request.form['info']
    game.release_date = dateutil.parser.parse(request.form['release_date'])
    game.developer = request.form['developer']
    game.publisher = request.form['publisher']
    game.edited_by = g.backend_user.email
    try:
        db_session.commit()
    except Exception, e:
        return backend.get_error_response(
            message="Info text too long.",
            status_code=400)
Example #3
0
def edit_game(id):
    game = db_session.query(Game).get(id)
    game.title = request.form['title']
    platform = db_session.query(Platform).get(request.form['platform_id'])
    if not platform:
        return backend.get_error_response(message="Platform ID invalid.",
                                          status_code=400)
    game.platform = platform
    game.platform_id = platform.p_id
    games = Game.query.filter(Game.title.like(game.title)).all()
    exists = False
    for ga in games:
        print "game platform:", game.platform_id, " ", game.g_id
        print "ga platform:", ga.platform_id, " ", game.g_id
        if ga.g_id != game.g_id and game.title == ga.title and str(
                game.platform_id) == str(ga.platform_id):
            exists = True
    if exists:
        return backend.get_error_response(
            message="A game with that title and platform already exists.",
            status_code=400)
    game.info = request.form['info']
    game.release_date = dateutil.parser.parse(request.form['release_date'])
    game.developer = request.form['developer']
    game.publisher = request.form['publisher']
    game.edited_by = g.backend_user.email
    try:
        db_session.commit()
    except Exception, e:
        return backend.get_error_response(message="Info text too long.",
                                          status_code=400)
Example #4
0
def add_game():
    title = request.form['title']
    platform_id = str(request.form['platform_id'])
    games = Game.query.filter(Game.title.like(title)).all()
    exists = False
    for game in games:
        print "games like ", title, game.title
        if game.title == title and str(game.platform_id) == platform_id:
            exists = True
    if exists:
        return backend.get_error_response(
                message="A game with that title and platform already exists.",
                status_code=400)
    platform = db_session.query(Platform).get(request.form['platform_id'])
    if platform == None:
        print "Platform doesn't exist"
        return backend.get_error_response(
            message="Platform ID invalid.",
            status_code=401)
    game = Game(request.form['title'], platform)
    game.edited_by = g.backend_user.email
    db_session.add(game)
    db_session.commit()
    return jsonify({"game_id":game.g_id,
                    "game_title":game.title,
                    "platform":game.platform.name,
                    "platform_id":game.platform.p_id,
                    "info":game.info,
                    "picture":game.picture,
                    "release_date":game.release_date.strftime("%Y-%m-%d"),
                    "developer":game.developer,
                    "publisher":game.publisher,
                    "edited_by":game.edited_by,
                    "relations":game.relations})
Example #5
0
def games():
    print "api games"
    if request.method == 'POST':
        search_term = str(request.form['search_term'])
        print "search_term_backend", search_term
        try:
            games = (Game.query.filter(Game.title.contains(search_term)).all())
        except Exception, e:
            return backend.get_error_response(
                message="Invalid search parameter.", status_code=400)
        try:
            games2 = (Game.query.filter(
                Game.title.contains(search_term.title())).all())
        except Exception, e:
            return backend.get_error_response(
                message="Invalid search parameter.", status_code=400)
Example #6
0
def games():
    print "api games"
    if request.method == 'POST':
        search_term = str(request.form['search_term'])
        print "search_term_backend",search_term
        try:
            games = (Game.query.filter(Game.title.contains(search_term)).all())
        except Exception, e:
            return backend.get_error_response(
                    message="Invalid search parameter.",
                    status_code=400)
        try:
            games2 = (Game.query.filter(Game.title.contains(search_term.title())).all())
        except Exception, e:
            return backend.get_error_response(
                    message="Invalid search parameter.",
                    status_code=400)
Example #7
0
def user():
    print "backend user"
    #token = request.args.get("user_token", None)
    token = request.form.get('token', None)
    if not token:
        print "no token"
        return backend.get_error_response(message="No token was provided.",
                                          status_code=404)

    #Get openid from token
    print "token: ", token
    user = db_session.query(User).filter(User.token.like(token)).first()
    if user is None:
        return backend.get_error_response(message="Token was invalid.",
                                          status_code=404)
    print "json user email: ", user.email
    return jsonify({"user_email": user.email})
Example #8
0
def user():
    print "backend user"
    #token = request.args.get("user_token", None)
    token = request.form.get('token', None)
    if not token:
        print "no token"
        return backend.get_error_response(
            message="No token was provided.",
            status_code=404)
    
    #Get openid from token
    print "token: ", token
    user = db_session.query(User).filter(User.token.like(token)).first()
    if user is None:
        return backend.get_error_response(
            message="Token was invalid.",
            status_code=404)
    print "json user email: ", user.email
    return jsonify({"user_email":user.email})
Example #9
0
def api_token():
    print "api token"
    ott = request.form.get('one_time_token', None)
    #ott = request.args.get("one_time_token", None)
    if not ott:
        print "/api/token/ there was no one time token"
        return backend.get_error_response(
            message="No OneTimeToken was provided.", status_code=404)
    # Get one time token from database
    # check if it existed as described in database
    user = db_session.query(User).filter_by(one_time_token=ott).first()
    if user is None:
        print "Invalid one time token"
        return backend.get_error_response(
            message="The one time token was invalid, try logging in again.",
            status_code=404)
    user.generate_new_token()
    db_session.commit()
    return user.token
Example #10
0
def api_token():
    print "api token"
    ott = request.form.get('one_time_token', None)
    #ott = request.args.get("one_time_token", None)
    if not ott:
        print "/api/token/ there was no one time token"
        return backend.get_error_response(
            message="No OneTimeToken was provided.",
            status_code=404)
    # Get one time token from database 
    # check if it existed as described in database
    user = db_session.query(User).filter_by(one_time_token=ott).first()
    if user is None:
        print "Invalid one time token"
        return backend.get_error_response(
            message="The one time token was invalid, try logging in again.",
            status_code=404)
    user.generate_new_token()
    db_session.commit()
    return user.token
Example #11
0
def add_game_relations(id):
    if id == request.form['g_id']:
        return jsonify({"error":"Can not relate to self"})
    g1id = id if id < int(request.form['g_id']) else request.form['g_id']
    print "low id: ", g1id
    g2id = request.form['g_id'] if id < int(request.form['g_id']) else id
    print "high id: ", g2id
    g1 = db_session.query(Game).get(g1id)
    g2 = db_session.query(Game).get(g2id)
    if g1 == None:
        if g1id == id:
            return backend.get_error_response(
                message="Source id doesn't exist",
                status_code=404)
        else:
            return backend.get_error_response(
                message="Target id doesn't exist",
                status_code=404)
    if g2 == None:
        if g2id == id:
            return backend.get_error_response(
                message="Source id doesn't exist",
                status_code=404)
        else:
            return backend.get_error_response(
                message="Target id doesn't exist",
                status_code=404)

    uniqueRelation = db_session.query(UniqueRelation).get((g.backend_user.openid, g1.g_id, g2.g_id))
    print "unik relation", uniqueRelation

    if uniqueRelation != None:
        print "Not unique relation"
        return backend.get_error_response(message="You have already done this relation earlier", status_code=404)
    else:
        #Target-game from users point of view
        game = db_session.query(Game).get(request.form['g_id'])
        #Always least id first
        relation = db_session.query(Relation).get((g1.g_id,g2.g_id))
        if relation == None:
            print "Relation was None"
            relation = Relation(g1,g2)
            db_session.add(relation)
            uniqueRelation = UniqueRelation(g.backend_user.openid, g1.g_id, g2.g_id)
            db_session.add(uniqueRelation)
        else:
            print "Relation already existed"
            relation.count = relation.count + 1
            uniqueRelation =UniqueRelation(g.backend_user.openid, relation.game1_id, relation.game2_id)
            db_session.add(uniqueRelation)
        print "relation: ", relation
        print "relations: ", relation.count
        g1.relations = g1.relations + 1
        g2.relations = g2.relations + 1
    try:
        db_session.commit()
    except Exception, e:
        return backend.get_error_response(
                message="Commit has failed.",
                status_code=404)
Example #12
0
def api_login():
    if not "openid" in session:
        print "no openid in session redirecting to google"
        return oid.try_login( 'https://www.google.com/accounts/o8/id', ask_for=['email'])
    else:
        print "openid in session: ", session['openid']
        user = db_session.query(User).filter_by(openid=session['openid']).first()
        if user is None:
            return backend.get_error_response(
                message="No user with that openid exists.",
                status_code=404)
        user.generate_new_ott()
        db_session.commit()
        return redirect(FRONTEND_URL + '/auth/?one_time_token=%s' % user.one_time_token)
Example #13
0
def api_login():
    if not "openid" in session:
        print "no openid in session redirecting to google"
        return oid.try_login('https://www.google.com/accounts/o8/id',
                             ask_for=['email'])
    else:
        print "openid in session: ", session['openid']
        user = db_session.query(User).filter_by(
            openid=session['openid']).first()
        if user is None:
            return backend.get_error_response(
                message="No user with that openid exists.", status_code=404)
        user.generate_new_ott()
        db_session.commit()
        return redirect(FRONTEND_URL +
                        '/auth/?one_time_token=%s' % user.one_time_token)
Example #14
0
def game(id):
    game = db_session.query(Game).get(id)
    if not game:
        return backend.get_error_response(
            message="Game ID invalid.",
            status_code=400)
    return jsonify({"game_id":game.g_id,
                    "game_title":game.title,
                    "platform":game.platform.name,
                    "platform_id":game.platform.p_id,
                    "info":game.info,
                    "picture":game.picture,
                    "release_date":game.release_date.strftime("%Y-%m-%d"),
                    "developer":game.developer,
                    "publisher":game.publisher,
                    "edited_by":game.edited_by,
                    "relations":game.relations})
Example #15
0
def game(id):
    game = db_session.query(Game).get(id)
    if not game:
        return backend.get_error_response(message="Game ID invalid.",
                                          status_code=400)
    return jsonify({
        "game_id": game.g_id,
        "game_title": game.title,
        "platform": game.platform.name,
        "platform_id": game.platform.p_id,
        "info": game.info,
        "picture": game.picture,
        "release_date": game.release_date.strftime("%Y-%m-%d"),
        "developer": game.developer,
        "publisher": game.publisher,
        "edited_by": game.edited_by,
        "relations": game.relations
    })
Example #16
0
def add_game_relations(id):
    if id == request.form['g_id']:
        return jsonify({"error": "Can not relate to self"})
    g1id = id if id < int(request.form['g_id']) else request.form['g_id']
    print "low id: ", g1id
    g2id = request.form['g_id'] if id < int(request.form['g_id']) else id
    print "high id: ", g2id
    g1 = db_session.query(Game).get(g1id)
    g2 = db_session.query(Game).get(g2id)
    if g1 == None:
        if g1id == id:
            return backend.get_error_response(
                message="Source id doesn't exist", status_code=404)
        else:
            return backend.get_error_response(
                message="Target id doesn't exist", status_code=404)
    if g2 == None:
        if g2id == id:
            return backend.get_error_response(
                message="Source id doesn't exist", status_code=404)
        else:
            return backend.get_error_response(
                message="Target id doesn't exist", status_code=404)

    uniqueRelation = db_session.query(UniqueRelation).get(
        (g.backend_user.openid, g1.g_id, g2.g_id))
    print "unik relation", uniqueRelation

    if uniqueRelation != None:
        print "Not unique relation"
        return backend.get_error_response(
            message="You have already done this relation earlier",
            status_code=404)
    else:
        #Target-game from users point of view
        game = db_session.query(Game).get(request.form['g_id'])
        #Always least id first
        relation = db_session.query(Relation).get((g1.g_id, g2.g_id))
        if relation == None:
            print "Relation was None"
            relation = Relation(g1, g2)
            db_session.add(relation)
            uniqueRelation = UniqueRelation(g.backend_user.openid, g1.g_id,
                                            g2.g_id)
            db_session.add(uniqueRelation)
        else:
            print "Relation already existed"
            relation.count = relation.count + 1
            uniqueRelation = UniqueRelation(g.backend_user.openid,
                                            relation.game1_id,
                                            relation.game2_id)
            db_session.add(uniqueRelation)
        print "relation: ", relation
        print "relations: ", relation.count
        g1.relations = g1.relations + 1
        g2.relations = g2.relations + 1
    try:
        db_session.commit()
    except Exception, e:
        return backend.get_error_response(message="Commit has failed.",
                                          status_code=404)