| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 
							- from flask_restx import Resource
 - from werkzeug.exceptions import Forbidden
 - 
 - from controllers.common.fields import build_site_model
 - from controllers.service_api import service_api_ns
 - from controllers.service_api.wraps import validate_app_token
 - from extensions.ext_database import db
 - from models.account import TenantStatus
 - from models.model import App, Site
 - 
 - 
 - @service_api_ns.route("/site")
 - class AppSiteApi(Resource):
 -     """Resource for app sites."""
 - 
 -     @service_api_ns.doc("get_app_site")
 -     @service_api_ns.doc(description="Get application site configuration")
 -     @service_api_ns.doc(
 -         responses={
 -             200: "Site configuration retrieved successfully",
 -             401: "Unauthorized - invalid API token",
 -             403: "Forbidden - site not found or tenant archived",
 -         }
 -     )
 -     @validate_app_token
 -     @service_api_ns.marshal_with(build_site_model(service_api_ns))
 -     def get(self, app_model: App):
 -         """Retrieve app site info.
 - 
 -         Returns the site configuration for the application including theme, icons, and text.
 -         """
 -         site = db.session.query(Site).where(Site.app_id == app_model.id).first()
 - 
 -         if not site:
 -             raise Forbidden()
 - 
 -         assert app_model.tenant
 -         if app_model.tenant.status == TenantStatus.ARCHIVE:
 -             raise Forbidden()
 - 
 -         return site
 
 
  |