Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from flask_restx import Resource
  2. from werkzeug.exceptions import Forbidden
  3. from controllers.common.fields import build_site_model
  4. from controllers.service_api import service_api_ns
  5. from controllers.service_api.wraps import validate_app_token
  6. from extensions.ext_database import db
  7. from models.account import TenantStatus
  8. from models.model import App, Site
  9. @service_api_ns.route("/site")
  10. class AppSiteApi(Resource):
  11. """Resource for app sites."""
  12. @service_api_ns.doc("get_app_site")
  13. @service_api_ns.doc(description="Get application site configuration")
  14. @service_api_ns.doc(
  15. responses={
  16. 200: "Site configuration retrieved successfully",
  17. 401: "Unauthorized - invalid API token",
  18. 403: "Forbidden - site not found or tenant archived",
  19. }
  20. )
  21. @validate_app_token
  22. @service_api_ns.marshal_with(build_site_model(service_api_ns))
  23. def get(self, app_model: App):
  24. """Retrieve app site info.
  25. Returns the site configuration for the application including theme, icons, and text.
  26. """
  27. site = db.session.query(Site).where(Site.app_id == app_model.id).first()
  28. if not site:
  29. raise Forbidden()
  30. assert app_model.tenant
  31. if app_model.tenant.status == TenantStatus.ARCHIVE:
  32. raise Forbidden()
  33. return site