from app import app, db from models import Achievement from flask_login import current_user, login_required import json @app.route("/achievement/") def get_achievement(id): achievement = Achievement.query.filter_by(id=id).first() if not achievement: return "{}" return json.dumps(achievement.to_obj()) @app.route("/achievement//endorse") @login_required def endorse_achievement(id): achievement = Achievement.query.filter_by(id=id).first() if not achievement: return "Invalid id" if current_user in achievement.endorsed_by: return "Already endorsed" achievement.endorsed_by.append(current_user) db.session.add(achievement) db.session.commit() return "OK" @app.route("/achievement//unendorse") @login_required def unendorse_achievement(id): achievement = Achievement.query.filter_by(id=id).first() if not achievement: return "Invalid id" if current_user not in achievement.endorsed_by: return "Can't unendorse if you never endorsed..." achievement.endorsed_by.remove(current_user) db.session.add(achievement) db.session.commit() return "OK"