Esempio n. 1
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)
Esempio n. 2
0
def user_client_auth():
    g.backend_client = None
    g.backend_user = None

    client_id = request.headers.get("client_id", None) or request.args.get("client_id", None)
    client_secret = request.headers.get("client_secret", None) or request.args.get("client_secret", None)

    if client_id and client_secret:
        client = db_session.query(Client).get(client_id)
        if client:
            if client.c_secret == client_secret:
                print "client found"
                g.backend_client = client
            else:
                print "secret didn't match... eh"
                g.backend_client = client
        else:
            print "client not in db"
    else:
        print "client id and secret not in header or else"

    token = request.headers.get("token", None) or request.args.get("token", None)
    if token:
        user = db_session.query(User).filter(User.token.like(token)).first()
        if user:
            g.backend_user = user
Esempio n. 3
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)
Esempio n. 4
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)
Esempio n. 5
0
def add_relation():
    in1 = request.form['g1_id']
    in2 = request.form['g2_id']
    if in1 == in2:
        return jsonify({"error":"Can not relate to self"})
    g1id = in1 if in1 < in2 else in2
    g2id = in2 if in1 < in2 else in1
    g1 = db_session.query(Game).get(g1id)
    g2 = db_session.query(Game).get(g2id)
    if g1 == None:
        return jsonify({"error":"Source id doesn't exist"})
    if g2 == None:
        return jsonify({"error":"Target id doesn't exist"})
    #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)
    else:
        relation.count = relation.count + 1
    try:
        db_session.commit()
    except Exception, e:
        return "Failed"
Esempio n. 6
0
def user_client_auth():
    g.backend_client = None
    g.backend_user = None

    client_id = request.headers.get('client_id', None) or request.args.get(
        'client_id', None)
    client_secret = request.headers.get(
        'client_secret', None) or request.args.get('client_secret', None)

    if client_id and client_secret:
        client = db_session.query(Client).get(client_id)
        if client:
            if client.c_secret == client_secret:
                print "client found"
                g.backend_client = client
            else:
                print "secret didn't match... eh"
                g.backend_client = client
        else:
            print "client not in db"
    else:
        print "client id and secret not in header or else"

    token = request.headers.get('token', None) or request.args.get(
        'token', None)
    if token:
        user = db_session.query(User).filter(User.token.like(token)).first()
        if user:
            g.backend_user = user
Esempio n. 7
0
def game_relation(source_id, target_id):
    if source_id == target_id:
        return jsonify({"error": "Can not relate to self"})
    g1id = source_id if source_id < target_id else target_id
    g2id = target_id if source_id < target_id else source_id
    g1 = db_session.query(Game).get(g1id)
    g2 = db_session.query(Game).get(g2id)
    if g1 == None:
        if g1id == source_id:
            return jsonify({"error": "Source id doesn't exist"})
        else:
            return jsonify({"error": "Target id doesn't exist"})
    if g2 == None:
        if g2id == source_id:
            return jsonify({"error": "Source id doesn't exist"})
        else:
            return jsonify({"error": "Target id doesn't exist"})
    #Target-game from users point of view
    game = db_session.query(Game).get(target_id)
    relation = db_session.query(Relation).get((g1.g_id, g2.g_id))
    if relation == None:
        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,
            "relation_count": 0
        })
    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,
        "relation_count": relation.count
    })
Esempio n. 8
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
    })
Esempio n. 9
0
def edit_image(id):
    print "Edit image backend"
    image = request.files['image']
    #fn = secure_filename(f.filename)
    #f_size = sys.getsizeof(f)
    # Makea da fix @ adding to database lol.

    game = db_session.query(Game).get(id)
    game.image = image.read()
    game.image_name = image.filename
    game.image_size = sys.getsizeof(image)
    game.picture = BACKEND_URL + '/game/' + str(id) + '/image/'
    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
    })
Esempio n. 10
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})
Esempio n. 11
0
def game_relations(id):
    # All relations including this game
    relations = Relation.query.filter((Relation.game1_id == id)
                                      | (Relation.game2_id == id)).all()
    rs = [(r.game1_id, r.count) if not r.game1_id == id else
          (r.game2_id, r.count) for r in relations]
    # All games with either part of the relation except this game
    #games = db_session.query(Game).filter((Game.g_id!=id)&(Game.g_id.in_(map(lambda r:r.game1_id, relations))|Game.g_id.in_(map(lambda r:r.game2_id, relations))))
    games = db_session.query(Game).filter(
        Game.g_id.in_(map(lambda (r, c): r, rs)))
    rgs = zip((map(lambda (r, c): c, rs)), games)
    rgs = sorted(rgs, key=lambda rg: rg[0], reverse=True)
    return jsonify({
        "relatedgames": [{
            "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,
            "relation_count": c
        } for (c, game) in rgs]
    })
Esempio n. 12
0
def platforms():
    platforms = db_session.query(Platform).order_by(Platform.p_id)
    return jsonify({
        "platforms": [{
            "platform_id": platform.p_id,
            "platform_name": platform.name
        } for platform in platforms]
    })
Esempio n. 13
0
def game_relation(source_id, target_id):
    if source_id == target_id:
        return jsonify({"error":"Can not relate to self"})
    g1id = source_id if source_id < target_id else target_id
    g2id = target_id if source_id < target_id else source_id
    g1 = db_session.query(Game).get(g1id)
    g2 = db_session.query(Game).get(g2id)
    if g1 == None:
        if g1id == source_id:
            return jsonify({"error":"Source id doesn't exist"})
        else:
            return jsonify({"error":"Target id doesn't exist"})
    if g2 == None:
        if g2id == source_id:
            return jsonify({"error":"Source id doesn't exist"})
        else:
            return jsonify({"error":"Target id doesn't exist"})
    #Target-game from users point of view
    game = db_session.query(Game).get(target_id)
    relation = db_session.query(Relation).get((g1.g_id,g2.g_id))
    if relation == None:
        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,
                        "relation_count":0})
    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,
                    "relation_count":relation.count})
Esempio n. 14
0
def game_image(id):
    game = db_session.query(Game).get(id)
    response = make_response()
    response.headers['Pragma'] = 'public'
    response.headers['Content-Type'] = mimetypes.guess_type(game.image_name)[0]
    response.headers['Content-Transfer-Encoding'] = 'binary'
    response.headers['Content-Disposition'] = 'filename=%s' % game.image_name
    response.headers['Content-Length'] = game.image_size
    response.data = game.image
    return response
Esempio n. 15
0
def game_image(id):
    game = db_session.query(Game).get(id)
    response = make_response()
    response.headers['Pragma'] = 'public'
    response.headers['Content-Type'] = mimetypes.guess_type(game.image_name)[0]
    response.headers['Content-Transfer-Encoding'] = 'binary'
    response.headers['Content-Disposition'] = 'filename=%s' % game.image_name
    response.headers['Content-Length'] = game.image_size
    response.data = game.image
    return response
Esempio n. 16
0
def game_image(id):
    game = db_session.query(Game).get(id)
    response = make_response()
    response.headers['Pragma'] = 'public'
    response.headers['Content-Type'] = 'txt'
    response.headers['Content-Transfer-Encoding'] = 'binary'
    response.headers['Content-Description'] = 'File Transfer'
    response.headers['Content-Disposition'] = 'attachment; filename=%s' % game.image_name
    response.headers['Content-Length'] = game.image_size
    response.data = game.image
    return response
Esempio n. 17
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)
Esempio n. 18
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)
Esempio n. 19
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})
Esempio n. 20
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})
Esempio n. 21
0
def create_or_login(resp):
    print "create or login"
    session['openid'] = resp.identity_url
    user = db_session.query(User).filter_by(openid=resp.identity_url).first()
    if user is not None:
        #flash(u'Successfully signed in')
        print "user found - openid: ", session['openid']
        g.user = user
        user.generate_new_ott()
        db_session.commit()
        return redirect(FRONTEND_URL + '/auth/?one_time_token=%s' % user.one_time_token)
    print "no user - openid: ", session['openid']
    user = User(openid=session['openid'], email=resp.email)
    db_session.add(user)
    db_session.commit()
    user.generate_new_ott()
    db_session.commit()
    return redirect(FRONTEND_URL + '/auth/?one_time_token=%s' % user.one_time_token)
Esempio n. 22
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
    })
Esempio n. 23
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})
Esempio n. 24
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
Esempio n. 25
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
Esempio n. 26
0
def create_or_login(resp):
    print "create or login"
    session['openid'] = resp.identity_url
    user = db_session.query(User).filter_by(openid=resp.identity_url).first()
    if user is not None:
        #flash(u'Successfully signed in')
        print "user found - openid: ", session['openid']
        g.user = user
        user.generate_new_ott()
        db_session.commit()
        return redirect(FRONTEND_URL +
                        '/auth/?one_time_token=%s' % user.one_time_token)
    print "no user - openid: ", session['openid']
    user = User(openid=session['openid'], email=resp.email)
    db_session.add(user)
    db_session.commit()
    user.generate_new_ott()
    db_session.commit()
    return redirect(FRONTEND_URL +
                    '/auth/?one_time_token=%s' % user.one_time_token)
Esempio n. 27
0
def game_relations(id):
    # All relations including this game
    relations = Relation.query.filter((Relation.game1_id==id)|(Relation.game2_id==id)).all()
    rs = [(r.game1_id, r.count) if not r.game1_id == id else (r.game2_id, r.count) for r in relations]
    # All games with either part of the relation except this game
    #games = db_session.query(Game).filter((Game.g_id!=id)&(Game.g_id.in_(map(lambda r:r.game1_id, relations))|Game.g_id.in_(map(lambda r:r.game2_id, relations))))
    games = db_session.query(Game).filter(Game.g_id.in_(map(lambda (r, c):r, rs)))
    rgs = zip((map(lambda (r,c):c, rs)),games)
    rgs = sorted(rgs,key=lambda rg: rg[0], reverse=True)
    return jsonify({"relatedgames":[{"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,
                        "relation_count":c} for (c,game) in rgs]})
Esempio n. 28
0
def edit_image(id):
    image = request.files['image']
    #fn = secure_filename(f.filename)
    #f_size = sys.getsizeof(f) 
    # Makea da fix @ adding to database lol.

    game = db_session.query(Game).get(id)
    game.image = image.read()
    game.image_name = image.filename
    game.image_size = sys.getsizeof(image)
    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})
Esempio n. 29
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)
Esempio n. 30
0
def relations():
    relations = db_session.query(Relation).order_by(Relation.game1_id)
    return jsonify({"relations":[{"g1_id":relation.game1_id,
                                  "g2_id":relation.game2_id,
                                  "count":relation.count} for relation in relations]})
Esempio n. 31
0
def platform(id):
    platform = db_session.query(Platform).get(id)
    return jsonify({
        "platform_id": platform.p_id,
        "platform_name": platform.name
    })
Esempio n. 32
0
def platforms():
    platforms = db_session.query(Platform).order_by(Platform.p_id)
    return jsonify({"platforms":[{"platform_id":platform.p_id,
                                  "platform_name":platform.name} for platform in platforms]})
Esempio n. 33
0
         "games": [{
             "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
         } for game in games]
     })
 else:
     games = db_session.query(Game).order_by(Game.relations.desc())
     games = games[:9]
     return jsonify({
         "games": [{
             "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
         } for game in games]
Esempio n. 34
0
        print "games: ----- "
        for game in games:
            print "game :", game.title
        return jsonify({"games":[{"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} for game in games]})
    else:
        games = db_session.query(Game).order_by(Game.relations.desc())
        games = games[:9]
        return jsonify({"games":[{"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} for game in games]})        

@backend.route('/api/game/add/', methods=['POST'])
@backend.user_required
Esempio n. 35
0
def platform(id):
    platform = db_session.query(Platform).get(id)
    return jsonify({"platform_id":platform.p_id,
                    "platform_name":platform.name})