| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | 
							- # -*- coding:utf-8 -*-
 
- from flask_restful import fields, marshal_with
 
- from werkzeug.exceptions import Forbidden
 
- from controllers.web import api
 
- from controllers.web.wraps import WebApiResource
 
- from extensions.ext_database import db
 
- from models.model import Site
 
- class AppSiteApi(WebApiResource):
 
-     """Resource for app sites."""
 
-     model_config_fields = {
 
-         'opening_statement': fields.String,
 
-         'suggested_questions': fields.Raw(attribute='suggested_questions_list'),
 
-         'suggested_questions_after_answer': fields.Raw(attribute='suggested_questions_after_answer_dict'),
 
-         'more_like_this': fields.Raw(attribute='more_like_this_dict'),
 
-         'model': fields.Raw(attribute='model_dict'),
 
-         'user_input_form': fields.Raw(attribute='user_input_form_list'),
 
-         'pre_prompt': fields.String,
 
-     }
 
-     site_fields = {
 
-         'title': fields.String,
 
-         'icon': fields.String,
 
-         'icon_background': fields.String,
 
-         'description': fields.String,
 
-         'copyright': fields.String,
 
-         'privacy_policy': fields.String,
 
-         'default_language': fields.String,
 
-         'prompt_public': fields.Boolean
 
-     }
 
-     app_fields = {
 
-         'app_id': fields.String,
 
-         'end_user_id': fields.String,
 
-         'enable_site': fields.Boolean,
 
-         'site': fields.Nested(site_fields),
 
-         'model_config': fields.Nested(model_config_fields, allow_null=True),
 
-         'plan': fields.String,
 
-     }
 
-     @marshal_with(app_fields)
 
-     def get(self, app_model, end_user):
 
-         """Retrieve app site info."""
 
-         # get site
 
-         site = db.session.query(Site).filter(Site.app_id == app_model.id).first()
 
-         if not site:
 
-             raise Forbidden()
 
-         return AppSiteInfo(app_model.tenant, app_model, site, end_user.id)
 
- api.add_resource(AppSiteApi, '/site')
 
- class AppSiteInfo:
 
-     """Class to store site information."""
 
-     def __init__(self, tenant, app, site, end_user):
 
-         """Initialize AppSiteInfo instance."""
 
-         self.app_id = app.id
 
-         self.end_user_id = end_user
 
-         self.enable_site = app.enable_site
 
-         self.site = site
 
-         self.model_config = None
 
-         self.plan = tenant.plan
 
-         if app.enable_site and site.prompt_public:
 
-             app_model_config = app.app_model_config
 
-             self.model_config = app_model_config
 
 
  |