pyceo/ceod/api/mailman.py

23 lines
780 B
Python

from flask import Blueprint
from .utils import authz_restrict_to_staff
from ceod.transactions.mailman import SubscribeMemberTransaction, UnsubscribeMemberTransaction
bp = Blueprint('mailman', __name__)
@bp.route('/<mailing_list>/<username>', methods=['POST'])
@authz_restrict_to_staff
def subscribe(mailing_list, username):
txn = SubscribeMemberTransaction(username, mailing_list)
txn.execute()
return {'message': f"{username} successfully subscribed to {mailing_list}"}
@bp.route('/<mailing_list>/<username>', methods=['DELETE'])
@authz_restrict_to_staff
def unsubscribe(mailing_list, username):
txn = UnsubscribeMemberTransaction(username, mailing_list)
txn.execute()
return {'message': f"{username} successfully unsubscribed from {mailing_list}"}