Meu_projeto/app/routes/organizacao_routes.py
2025-05-16 19:55:05 -04:00

47 lines
1.6 KiB
Python

from flask import Blueprint, jsonify, request
from app.auth import generate_token, token_required
from app.models.organizacao import organization
from app.database import db
from werkzeug.security import generate_password_hash, check_password_hash
organization_bp = Blueprint("organizations", __name__)
@organization_bp.route("/", methods=["GET"])
@token_required
def get_organizations(self):
organizations = organization.query.all()
return jsonify([{"id": o.id, "name": o.name, "email": o.email} for o in organizations])
@organization_bp.route("/", methods=["POST"])
def create_organization(self):
data = request.get_json()
name = data.get("name")
email = data.get("email")
password = data.get("password")
if organization.query.filter_by(email=email).first():
return jsonify({"message": "Organização já existe!"}), 400
hashed_password = generate_password_hash(password, method="pbkdf2:sha256")
new_org = organization(name=name, email=email, password=hashed_password)
db.session.add(new_org)
db.session.commit()
return jsonify({"message": "Organização registrada com sucesso!"}), 201
@organization_bp.route("/login", methods=["POST"])
def login_organization():
data = request.get_json()
email = data.get("email")
password = data.get("password")
organization = organization.query.filter_by(email=email).first()
if not organization or not check_password_hash(organization.password, password):
return jsonify({"message": "Credenciais inválidas!"}), 401
token = generate_token(organization)
return jsonify({"message": "Login bem-sucedido", "token": token}), 200