Source code for paperap.resources.ui_settings

"""




----------------------------------------------------------------------------

METADATA:

File:    ui_settings.py
Project: paperap
Created: 2025-03-21
Version: 0.0.9
Author:  Jess Mann
Email:   jess@jmann.me
Copyright (c) 2025 Jess Mann

----------------------------------------------------------------------------

LAST MODIFIED:

2025-03-21     By Jess Mann

"""

from __future__ import annotations

from typing import Any, Iterator, override

from paperap.models.ui_settings import UISettings, UISettingsQuerySet
from paperap.resources.base import BaseResource, StandardResource


[docs] class UISettingsResource(StandardResource[UISettings, UISettingsQuerySet]): """Resource for managing UI settings.""" model_class = UISettings queryset_class = UISettingsQuerySet name = "ui_settings"
[docs] def get_current(self) -> UISettings | None: """ Get the current user's UI settings. Returns: The current user's UI settings. """ if not (response := self.client.request("GET", "ui_settings/")): return None if response: return self.parse_to_model(response) return None
[docs] def update_current(self, settings: dict[str, Any]) -> UISettings: """ Update the current user's UI settings. Args: settings: The settings to update. Returns: The updated UI settings. """ ui_settings = self.get_current() if ui_settings: ui_settings.settings.update(settings) return self.update(ui_settings) # Create new settings return self.create(**{"settings": settings})
[docs] @override def delete(self, model_id: int | UISettings) -> None: raise NotImplementedError("Cannot delete UI settings, per Paperless NGX REST Api")