compliance.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from flask import request
  2. from flask_login import current_user # type: ignore
  3. from flask_restful import Resource, reqparse # type: ignore
  4. from libs.helper import extract_remote_ip
  5. from libs.login import login_required
  6. from services.billing_service import BillingService
  7. from .. import api
  8. from ..wraps import account_initialization_required, only_edition_cloud, setup_required
  9. class ComplianceApi(Resource):
  10. @setup_required
  11. @login_required
  12. @account_initialization_required
  13. @only_edition_cloud
  14. def get(self):
  15. parser = reqparse.RequestParser()
  16. parser.add_argument("doc_name", type=str, required=True, location="args")
  17. args = parser.parse_args()
  18. ip_address = extract_remote_ip(request)
  19. device_info = request.headers.get("User-Agent", "Unknown device")
  20. return BillingService.get_compliance_download_link(
  21. doc_name=args.doc_name,
  22. account_id=current_user.id,
  23. tenant_id=current_user.current_tenant_id,
  24. ip=ip_address,
  25. device_info=device_info,
  26. )
  27. api.add_resource(ComplianceApi, "/compliance/download")