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 })
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)
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)
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})
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)
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)
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})
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})
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
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
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)
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)
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)
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})
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 })
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)