1010
1111@dataclass
1212class CfgRecord :
13+ """A representation of a single key-value pair returned from the `get_values` method."""
14+
1315 key : str
1416 value : str
1517
@@ -18,8 +20,8 @@ def __init__(self, raw_data: dict):
1820 self .value = raw_data ["configvalue" ]
1921
2022
21- class BasicAppCfgPref :
22- url_suffix : str
23+ class _BasicAppCfgPref :
24+ _url_suffix : str
2325
2426 def __init__ (self , session : NcSessionBasic ):
2527 self ._session = session
@@ -40,7 +42,7 @@ def get_values(self, keys: list[str]) -> list[CfgRecord]:
4042 raise ValueError ("`key` parameter can not be empty" )
4143 require_capabilities ("app_ecosystem_v2" , self ._session .capabilities )
4244 data = {"configKeys" : keys }
43- results = self ._session .ocs (method = "POST" , path = f"{ APP_V2_BASIC_URL } /{ self .url_suffix } /get-values" , json = data )
45+ results = self ._session .ocs (method = "POST" , path = f"{ APP_V2_BASIC_URL } /{ self ._url_suffix } /get-values" , json = data )
4446 return [CfgRecord (i ) for i in results ]
4547
4648 def delete (self , keys : Union [str , list [str ]], not_fail = True ) -> None :
@@ -52,25 +54,29 @@ def delete(self, keys: Union[str, list[str]], not_fail=True) -> None:
5254 raise ValueError ("`key` parameter can not be empty" )
5355 require_capabilities ("app_ecosystem_v2" , self ._session .capabilities )
5456 try :
55- self ._session .ocs (method = "DELETE" , path = f"{ APP_V2_BASIC_URL } /{ self .url_suffix } " , json = {"configKeys" : keys })
57+ self ._session .ocs (method = "DELETE" , path = f"{ APP_V2_BASIC_URL } /{ self ._url_suffix } " , json = {"configKeys" : keys })
5658 except NextcloudExceptionNotFound as e :
5759 if not not_fail :
5860 raise e from None
5961
6062
61- class PreferencesExAPI (BasicAppCfgPref ):
62- url_suffix = "ex-app/preference"
63+ class PreferencesExAPI (_BasicAppCfgPref ):
64+ """User specific preferences API."""
65+
66+ _url_suffix = "ex-app/preference"
6367
6468 def set_value (self , key : str , value : str ) -> None :
6569 if not key :
6670 raise ValueError ("`key` parameter can not be empty" )
6771 require_capabilities ("app_ecosystem_v2" , self ._session .capabilities )
6872 params = {"configKey" : key , "configValue" : value }
69- self ._session .ocs (method = "POST" , path = f"{ APP_V2_BASIC_URL } /{ self .url_suffix } " , json = params )
73+ self ._session .ocs (method = "POST" , path = f"{ APP_V2_BASIC_URL } /{ self ._url_suffix } " , json = params )
74+
7075
76+ class AppConfigExAPI (_BasicAppCfgPref ):
77+ """Non-user(App) specific preferences API."""
7178
72- class AppConfigExAPI (BasicAppCfgPref ):
73- url_suffix = "ex-app/config"
79+ _url_suffix = "ex-app/config"
7480
7581 def set_value (self , key : str , value : str , sensitive : bool = False ) -> None :
7682 if not key :
@@ -79,4 +85,4 @@ def set_value(self, key: str, value: str, sensitive: bool = False) -> None:
7985 params : dict = {"configKey" : key , "configValue" : value }
8086 if sensitive :
8187 params ["sensitive" ] = True
82- self ._session .ocs (method = "POST" , path = f"{ APP_V2_BASIC_URL } /{ self .url_suffix } " , json = params )
88+ self ._session .ocs (method = "POST" , path = f"{ APP_V2_BASIC_URL } /{ self ._url_suffix } " , json = params )
0 commit comments