Пример #1
0
    def post(self):
        args = parser.parse_args()
        user = User.query.filter_by(name=args["name"].lower()).first()
        if user == None:
            status = {
                "success": False,
                "user": args["name"].lower(),
                "score": args["score"],
                "message": "User does not exist"
            }

            return status, 422

        # Check if the user's score exists
        score = Score.query.filter_by(user=user).first()
        if score == None:
            # The user's score does not exist, add new
            score = Score(score=int(args["score"]), user=user)
        else:
            score.score = int(args["score"])

        db.session.add(score)
        try:
            db.session.commit()
            status = {
                "success": True,
                "user": args["name"].lower(),
                "score": args["score"]
            }
        except Exception as _e:
            # TODO: Log the exception
            # log your exception in the way you want -> log to file, log as error with default logging, send by email. It's upon you
            db.session.rollback()
            db.session.flush()  # for resetting non-commited .add()
            status = {
                "success": False,
                "user": args["name"].lower(),
                "score": args["score"]
            }

        return status, 201