23 lines
780 B
Python
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}"}
|