1234567891011121314151617181920212223242526272829303132333435 |
- from flask import request
- from flask_login import current_user # type: ignore
- from flask_restful import Resource, reqparse # type: ignore
- from libs.helper import extract_remote_ip
- from libs.login import login_required
- from services.billing_service import BillingService
- from .. import api
- from ..wraps import account_initialization_required, only_edition_cloud, setup_required
- class ComplianceApi(Resource):
- @setup_required
- @login_required
- @account_initialization_required
- @only_edition_cloud
- def get(self):
- parser = reqparse.RequestParser()
- parser.add_argument("doc_name", type=str, required=True, location="args")
- args = parser.parse_args()
- ip_address = extract_remote_ip(request)
- device_info = request.headers.get("User-Agent", "Unknown device")
- return BillingService.get_compliance_download_link(
- doc_name=args.doc_name,
- account_id=current_user.id,
- tenant_id=current_user.current_tenant_id,
- ip=ip_address,
- device_info=device_info,
- )
- api.add_resource(ComplianceApi, "/compliance/download")
|