def livros_desejo_post(params):
    usuario = Token.get_usuario_from_token(params.get('token'))
    livro = Livros.collection().find_one({'_id': ObjectId(params.get('livro'))})
    if usuario and livro:
        livro = Livros.make_livro_from_dict(Livros(), livro)
        usuario.set_livro_deseja(livro)
        return "ok"
    else:
        abort(500)
def livros_resenhas_post(params):
    usuario = Token.get_usuario_from_token(params.get('token'))
    livro = Livros.collection().find_one({'_id': ObjectId(params.get('livro'))})
    resenha = params.get('avaliacao')
    if usuario and livro and resenha:
        livro = Livros.make_livro_from_dict(Livros(), livro)
        usuario.set_resenha(resenha, livro)
        return "ok"
    else:
        abort(500)
def livros_avaliacoes_post(params):
    usuario = Token.get_usuario_from_token(params.get('token'))
    livro = Livros.collection().find_one({'_id': ObjectId(params.get('livro'))})
    avaliacao = int(params.get('avaliacao'))
    if usuario and livro and (0 <= avaliacao <= 5):
        livro = Livros.make_livro_from_dict(Livros(), livro)
        usuario.set_avaliacao(avaliacao, livro)
        return "ok"
    else:
        abort(500)
def livros_avaliacoes_get(params):
    usuario = Token.get_usuario_from_token(params.get('token'))
    avaliacoes = usuario.get_livros_avaliados()
    return JSONEncoder().encode(avaliacoes)
def livros_desejo_get(params):
    usuario = Token.get_usuario_from_token(params.get('token'))
    livros = Livros.make_dict_from_livro(None, usuario.get_livros_desejo(), many=True)
    return JSONEncoder().encode(livros)
def livros_resenhas_get(params):
    usuario = Token.get_usuario_from_token(params.get('token'))
    resenhas = usuario.get_livros_resenhados()
    return JSONEncoder().encode(resenhas)