44 lines
1.3 KiB
Plaintext
44 lines
1.3 KiB
Plaintext
from flask import Blueprint, request, jsonify
|
|
from flask_jwt_extended import jwt_required
|
|
from models.group import Group, db
|
|
|
|
group_bp = Blueprint('group', __name__, url_prefix='/groups')
|
|
|
|
@group_bp.route('/', methods=['POST'])
|
|
@jwt_required()
|
|
def create_group():
|
|
data = request.get_json()
|
|
name = data.get('name')
|
|
|
|
if Group.query.filter_by(name=name).first():
|
|
return jsonify({'error': 'Grupo já existe'}), 400
|
|
|
|
group = Group(name=name)
|
|
db.session.add(group)
|
|
db.session.commit()
|
|
return jsonify({'message': 'Grupo criado com sucesso'}), 201
|
|
|
|
@group_bp.route('/', methods=['GET'])
|
|
@jwt_required()
|
|
def list_groups():
|
|
groups = Group.query.all()
|
|
return jsonify([{'id': g.id, 'name': g.name} for g in groups]), 200
|
|
|
|
@group_bp.route('/<int:group_id>', methods=['PUT'])
|
|
@jwt_required()
|
|
def update_group(group_id):
|
|
data = request.get_json()
|
|
group = Group.query.get_or_404(group_id)
|
|
|
|
group.name = data.get('name', group.name)
|
|
db.session.commit()
|
|
return jsonify({'message': 'Grupo atualizado com sucesso'}), 200
|
|
|
|
@group_bp.route('/<int:group_id>', methods=['DELETE'])
|
|
@jwt_required()
|
|
def delete_group(group_id):
|
|
group = Group.query.get_or_404(group_id)
|
|
db.session.delete(group)
|
|
db.session.commit()
|
|
return jsonify({'message': 'Grupo excluído com sucesso'}), 200
|