Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Settings: Unify saving settings #506

Merged
merged 8 commits into from
Feb 12, 2025
58 changes: 15 additions & 43 deletions api/addons/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

from ayon_server.addons import AddonLibrary
from ayon_server.exceptions import NotFoundException
from ayon_server.lib.postgres import Postgres
from ayon_server.settings import BaseSettingsModel
from ayon_server.settings.set_addon_settings import set_addon_settings
from ayon_server.types import Field, OPModel
from ayon_server.utils import dict_remove_path

Expand All @@ -28,10 +28,8 @@ async def remove_override(
# TODO: ensure the path is not a part of a group

if project_name:
scope = f"project_{project_name}."
overrides = await addon.get_project_overrides(project_name, variant=variant)
else:
scope = "public."
overrides = await addon.get_studio_overrides(variant=variant)

try: # TODO: this try/block is probably no longer needed
Expand All @@ -40,18 +38,12 @@ async def remove_override(
log_traceback()
return

await Postgres.execute(
f"""
INSERT INTO {scope}settings
(addon_name, addon_version, variant, data)
VALUES ($1, $2, $3, $4)
ON CONFLICT (addon_name, addon_version, variant)
DO UPDATE SET data = $4
""",
await set_addon_settings(
addon_name,
addon_version,
variant,
overrides,
variant=variant,
project_name=project_name,
)


Expand All @@ -66,11 +58,9 @@ async def pin_override(
raise NotFoundException(f"Addon {addon_name} {addon_version} not found")

if project_name:
scope = f"project_{project_name}."
overrides = await addon.get_project_overrides(project_name, variant=variant)
settings = await addon.get_project_settings(project_name, variant=variant)
else:
scope = ""
overrides = await addon.get_studio_overrides(variant=variant)
settings = await addon.get_studio_settings(variant=variant)

Expand Down Expand Up @@ -111,18 +101,12 @@ async def pin_override(
c_overr[key] = c_field
break

await Postgres.execute(
f"""
INSERT INTO {scope}settings
(addon_name, addon_version, variant, data)
VALUES ($1, $2, $3, $4)
ON CONFLICT (addon_name, addon_version, variant)
DO UPDATE SET data = $4
""",
await set_addon_settings(
addon_name,
addon_version,
variant,
overrides,
variant=variant,
project_name=project_name,
)


Expand Down Expand Up @@ -150,19 +134,13 @@ async def remove_site_override(
log_traceback()
return

await Postgres.execute(
f"""
INSERT INTO project_{project_name}.project_site_settings
(addon_name, addon_version, site_id, user_name, data)
VALUES ($1, $2, $3, $4, $5)
ON CONFLICT (addon_name, addon_version, site_id, user_name)
DO UPDATE SET data = $5
""",
await set_addon_settings(
addon_name,
addon_version,
site_id,
user_name,
overrides,
project_name=project_name,
site_id=site_id,
user_name=user_name,
)


Expand Down Expand Up @@ -217,17 +195,11 @@ async def pin_site_override(
c_overr[key] = c_field
break

await Postgres.execute(
f"""
INSERT INTO project_{project_name}.project_site_settings
(addon_name, addon_version, site_id, user_name, data)
VALUES ($1, $2, $3, $4, $5)
ON CONFLICT (addon_name, addon_version, site_id, user_name)
DO UPDATE SET data = $5
""",
await set_addon_settings(
addon_name,
addon_version,
site_id,
user_name,
overrides,
project_name=project_name,
site_id=site_id,
user_name=user_name,
)
Loading