fix: use session to manage AppSite

pull/12538/head
Yeuoly 1 year ago
parent 3799d40937
commit aa6452b3bf

@ -2,6 +2,7 @@ from datetime import UTC, datetime
from flask_login import current_user # type: ignore from flask_login import current_user # type: ignore
from flask_restful import Resource, marshal_with, reqparse # type: ignore from flask_restful import Resource, marshal_with, reqparse # type: ignore
from sqlalchemy.orm import Session
from werkzeug.exceptions import Forbidden, NotFound from werkzeug.exceptions import Forbidden, NotFound
from constants.languages import supported_language from constants.languages import supported_language
@ -50,33 +51,37 @@ class AppSite(Resource):
if not current_user.is_editor: if not current_user.is_editor:
raise Forbidden() raise Forbidden()
site = Site.query.filter(Site.app_id == app_model.id).one_or_404() with Session(db.engine) as session:
site = session.query(Site).filter(Site.app_id == app_model.id).first()
for attr_name in [
"title", if not site:
"icon_type", raise NotFound
"icon",
"icon_background", for attr_name in [
"description", "title",
"default_language", "icon_type",
"chat_color_theme", "icon",
"chat_color_theme_inverted", "icon_background",
"customize_domain", "description",
"copyright", "default_language",
"privacy_policy", "chat_color_theme",
"custom_disclaimer", "chat_color_theme_inverted",
"customize_token_strategy", "customize_domain",
"prompt_public", "copyright",
"show_workflow_steps", "privacy_policy",
"use_icon_as_answer_icon", "custom_disclaimer",
]: "customize_token_strategy",
value = args.get(attr_name) "prompt_public",
if value is not None: "show_workflow_steps",
setattr(site, attr_name, value) "use_icon_as_answer_icon",
]:
site.updated_by = current_user.id value = args.get(attr_name)
site.updated_at = datetime.now(UTC).replace(tzinfo=None) if value is not None:
db.session.commit() setattr(site, attr_name, value)
site.updated_by = current_user.id
site.updated_at = datetime.now(UTC).replace(tzinfo=None)
session.commit()
return site return site

Loading…
Cancel
Save