def get(cls, user_id):
     return {
         'message':
         'success',
         'content':
         [score.json() for score in ScoreModel.find_by_user_id(user_id)]
     }
    def delete(cls, user_id):
        for score in ScoreModel.find_by_user_id(user_id):
            score.remove_from_db()

        return {
            'message':
            f'Successfully deleted all scores for user \"{user_id}\".'
        }
    def post(cls, user_id):
        data = cls.parser.parse_args()

        names = (score.name for score in ScoreModel.find_by_user_id(user_id))

        if data['name'] not in names:
            new_score = ScoreModel(data['name'],
                                   user_id,
                                   data['score'],
                                   public=data['public'],
                                   description=data['description'])
            new_score.save_to_db()

            return {
                'message': 'Successfully added new score.',
                'content': new_score.json()
            }
        return {
            'message':
            f'Name \"{data["name"]}\" was already used, try different name.',
        }, 409
    def patch(cls, user_id, score_name):
        data = cls.parser.parse_args()

        names = (score.name for score in ScoreModel.find_by_user_id(user_id))

        if data['name'] in names:
            return {
                'message': 'This name is already used. Try a different one.'
            }, 409

        score = ScoreModel.find_by_name(user_id, score_name)

        if score:
            for key, val in data.items():
                if val is not None:
                    setattr(score, key, val)

            score.last_edit = datetime.datetime.now()
            score.save_to_db()
            return {
                'message': f'Successfully updated score \"{score_name}\".',
                'content': score.json(),
            }
        return cls.fail_response(score_name)