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