45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from flask import Blueprint, request, jsonify
|
|
from app.database import db
|
|
from app.models import usuario # nome correto do modelo
|
|
|
|
usuarios_bp = Blueprint('usuarios', __name__, url_prefix='/usuarios')
|
|
|
|
|
|
@usuarios_bp.route('/', methods=['GET'])
|
|
def get_usuarios():
|
|
usuarios = usuario.query.all()
|
|
usuarios_data = [
|
|
{
|
|
'id': usuario.id,
|
|
'nome': usuario.nome,
|
|
'email': usuario.email,
|
|
'organizacao_id': usuario.organizacao_id,
|
|
'criado_em': usuario.criado_em,
|
|
'atualizado_em': usuario.atualizado_em
|
|
}
|
|
for usuario in usuarios
|
|
]
|
|
return jsonify(usuarios_data), 200
|
|
|
|
|
|
@usuarios_bp.route('/', methods=['POST'])
|
|
def create_usuario():
|
|
data = request.get_json()
|
|
if not all(k in data for k in ('nome', 'email', 'senha_hash', 'organizacao_id')):
|
|
return jsonify({'error': 'Campos obrigatórios ausentes'}), 400
|
|
|
|
if Usuario.query.filter_by(email=data['email']).first():
|
|
return jsonify({'error': 'E-mail já está em uso'}), 409
|
|
|
|
novo_usuario = Usuario(
|
|
nome=data['nome'],
|
|
email=data['email'],
|
|
senha_hash=data['senha_hash'],
|
|
organizacao_id=data['organizacao_id']
|
|
)
|
|
|
|
db.session.add(novo_usuario)
|
|
db.session.commit()
|
|
|
|
return jsonify({'message': 'Usuário criado com sucesso', 'id': novo_usuario.id}), 201
|