您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

1234567891011121314151617181920212223242526272829303132333435363738
  1. from flask_restful import Resource, reqparse
  2. from controllers.console.wraps import setup_required
  3. from controllers.inner_api import api
  4. from controllers.inner_api.wraps import billing_inner_api_only, enterprise_inner_api_only
  5. from tasks.mail_inner_task import send_inner_email_task
  6. _mail_parser = reqparse.RequestParser()
  7. _mail_parser.add_argument("to", type=str, action="append", required=True)
  8. _mail_parser.add_argument("subject", type=str, required=True)
  9. _mail_parser.add_argument("body", type=str, required=True)
  10. _mail_parser.add_argument("substitutions", type=dict, required=False)
  11. class BaseMail(Resource):
  12. """Shared logic for sending an inner email."""
  13. def post(self):
  14. args = _mail_parser.parse_args()
  15. send_inner_email_task.delay(
  16. to=args["to"],
  17. subject=args["subject"],
  18. body=args["body"],
  19. substitutions=args["substitutions"],
  20. )
  21. return {"message": "success"}, 200
  22. class EnterpriseMail(BaseMail):
  23. method_decorators = [setup_required, enterprise_inner_api_only]
  24. class BillingMail(BaseMail):
  25. method_decorators = [setup_required, billing_inner_api_only]
  26. api.add_resource(EnterpriseMail, "/enterprise/mail")
  27. api.add_resource(BillingMail, "/billing/mail")