python-alfresco-api 1.1.2__py3-none-any.whl → 1.1.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- python_alfresco_api/clients/__init__.py +5 -5
- python_alfresco_api/clients/auth/auth_client.py +1 -1
- python_alfresco_api/clients/auth/authentication/authentication_client.py +207 -25
- python_alfresco_api/clients/conversion_utils.py +2 -2
- python_alfresco_api/clients/core/actions/actions_client.py +26 -39
- python_alfresco_api/clients/core/activities/activities_client.py +14 -27
- python_alfresco_api/clients/core/audit/audit_client.py +375 -28
- python_alfresco_api/clients/core/comments/comments_client.py +26 -39
- python_alfresco_api/clients/core/content/content_client.py +9 -18
- python_alfresco_api/clients/core/core_client.py +40 -40
- python_alfresco_api/clients/core/downloads/downloads_client.py +23 -36
- python_alfresco_api/clients/core/favorites/favorites_client.py +195 -25
- python_alfresco_api/clients/core/groups/groups_client.py +247 -27
- python_alfresco_api/clients/core/networks/networks_client.py +141 -26
- python_alfresco_api/clients/core/nodes/copy_node.py +4 -4
- python_alfresco_api/clients/core/nodes/create_association.py +4 -4
- python_alfresco_api/clients/core/nodes/create_folder.py +4 -4
- python_alfresco_api/clients/core/nodes/create_node.py +4 -4
- python_alfresco_api/clients/core/nodes/create_secondary_child_association.py +4 -4
- python_alfresco_api/clients/core/nodes/delete_association.py +4 -4
- python_alfresco_api/clients/core/nodes/delete_node.py +4 -4
- python_alfresco_api/clients/core/nodes/delete_secondary_child_association.py +4 -4
- python_alfresco_api/clients/core/nodes/get_node.py +4 -4
- python_alfresco_api/clients/core/nodes/list_node_children.py +4 -4
- python_alfresco_api/clients/core/nodes/list_parents.py +4 -4
- python_alfresco_api/clients/core/nodes/list_secondary_children.py +4 -4
- python_alfresco_api/clients/core/nodes/list_source_associations.py +4 -4
- python_alfresco_api/clients/core/nodes/list_target_associations.py +4 -4
- python_alfresco_api/clients/core/nodes/lock_node.py +4 -4
- python_alfresco_api/clients/core/nodes/move_node.py +4 -4
- python_alfresco_api/clients/core/nodes/nodes_client.py +12 -6
- python_alfresco_api/clients/core/nodes/unlock_node.py +4 -4
- python_alfresco_api/clients/core/nodes/update_node.py +4 -4
- python_alfresco_api/clients/core/nodes/update_node_content.py +4 -4
- python_alfresco_api/clients/core/people/people_client.py +214 -24
- python_alfresco_api/clients/core/preferences/preferences_client.py +94 -24
- python_alfresco_api/clients/core/probes/probes_client.py +14 -27
- python_alfresco_api/clients/core/queries/queries_client.py +23 -37
- python_alfresco_api/clients/core/ratings/ratings_client.py +27 -40
- python_alfresco_api/clients/core/renditions/renditions_client.py +23 -36
- python_alfresco_api/clients/core/shared_links/shared_links_client.py +331 -28
- python_alfresco_api/clients/core/sites/sites_client.py +255 -27
- python_alfresco_api/clients/core/tags/tags_client.py +249 -27
- python_alfresco_api/clients/core/trashcan/trashcan_client.py +245 -28
- python_alfresco_api/clients/core/versions/versions_client.py +8 -17
- python_alfresco_api/clients/discovery/discovery/discovery_operations.py +15 -28
- python_alfresco_api/clients/discovery/discovery_client.py +1 -1
- python_alfresco_api/clients/model/aspects/aspects_client.py +99 -26
- python_alfresco_api/clients/model/model_client.py +4 -4
- python_alfresco_api/clients/model/types/types_client.py +99 -26
- python_alfresco_api/clients/search/search/search_operations.py +15 -28
- python_alfresco_api/clients/search/search_client.py +1 -1
- python_alfresco_api/clients/search_sql/search_sql_client.py +2 -1
- python_alfresco_api/clients/search_sql/sql/sql_client.py +132 -22
- python_alfresco_api/clients/workflow/deployments/deployments_client.py +256 -22
- python_alfresco_api/clients/workflow/process_definitions/process_definitions_client.py +26 -39
- python_alfresco_api/clients/workflow/processes/processes_client.py +55 -68
- python_alfresco_api/clients/workflow/tasks/tasks_client.py +64 -77
- python_alfresco_api/clients/workflow/workflow_client.py +8 -8
- python_alfresco_api/utils/search_utils.py +8 -8
- {python_alfresco_api-1.1.2.dist-info → python_alfresco_api-1.1.4.dist-info}/METADATA +1 -1
- {python_alfresco_api-1.1.2.dist-info → python_alfresco_api-1.1.4.dist-info}/RECORD +64 -64
- {python_alfresco_api-1.1.2.dist-info → python_alfresco_api-1.1.4.dist-info}/WHEEL +0 -0
- {python_alfresco_api-1.1.2.dist-info → python_alfresco_api-1.1.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -9,11 +9,11 @@ This module provides a three-tier architecture:
|
|
|
9
9
|
- Level 3: Operation-specific models for ONE operation
|
|
10
10
|
|
|
11
11
|
Key Benefits:
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
12
|
+
- [PERFORMANCE] Better performance with lazy loading
|
|
13
|
+
- [ORGANIZATION] Organized locality (models exactly where used)
|
|
14
|
+
- [STRUCTURE] Structured imports and clear organization
|
|
15
|
+
- [MODELS] Pydantic v2 models for better type checking in general and for AI/LLM integration
|
|
16
|
+
- [ASYNC] Dual sync/async APIs (sync for simpler use, async for web apps)
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
19
|
# Modern clients with three-tier architecture and lazy loading
|
|
@@ -137,7 +137,7 @@ class AlfrescoAuthClient:
|
|
|
137
137
|
if self._authentication is None:
|
|
138
138
|
# Lazy load the authentication client
|
|
139
139
|
from .authentication import AuthenticationClient
|
|
140
|
-
self._authentication = AuthenticationClient(self
|
|
140
|
+
self._authentication = AuthenticationClient(self)
|
|
141
141
|
return self._authentication
|
|
142
142
|
|
|
143
143
|
# =================================================================
|
|
@@ -22,9 +22,9 @@ from ....raw_clients.alfresco_auth_client.auth_client.types import UNSET, Unset
|
|
|
22
22
|
from httpx import Response
|
|
23
23
|
|
|
24
24
|
# Import model types for proper parameter signatures
|
|
25
|
-
from ....raw_clients.alfresco_auth_client.auth_client.models.
|
|
26
|
-
from ....raw_clients.alfresco_auth_client.auth_client.models.
|
|
27
|
-
from ....raw_clients.alfresco_auth_client.auth_client.models.
|
|
25
|
+
from ....raw_clients.alfresco_auth_client.auth_client.models.ticket_body import TicketBody
|
|
26
|
+
from ....raw_clients.alfresco_auth_client.auth_client.models.ticket_entry import TicketEntry
|
|
27
|
+
from ....raw_clients.alfresco_auth_client.auth_client.models.valid_ticket_entry import ValidTicketEntry
|
|
28
28
|
|
|
29
29
|
# Import from Level 3 (operation-specific models)
|
|
30
30
|
from .models import AuthenticationResponse, AuthenticationListResponse, CreateAuthenticationRequest
|
|
@@ -53,9 +53,9 @@ class AuthenticationClient:
|
|
|
53
53
|
- Detailed sync/async for full HTTP response access
|
|
54
54
|
"""
|
|
55
55
|
|
|
56
|
-
def __init__(self,
|
|
56
|
+
def __init__(self, parent_client):
|
|
57
57
|
"""Initialize with client factory for raw client access."""
|
|
58
|
-
self.
|
|
58
|
+
self.parent_client = parent_client
|
|
59
59
|
self._raw_client = None
|
|
60
60
|
|
|
61
61
|
# Store raw operation references
|
|
@@ -64,31 +64,213 @@ class AuthenticationClient:
|
|
|
64
64
|
self._delete_ticket = _delete_ticket
|
|
65
65
|
self._validate_ticket = _validate_ticket
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
from ....raw_clients.alfresco_auth_client.auth_client.client import AuthenticatedClient
|
|
72
|
-
|
|
73
|
-
# Create the raw client with same auth setup
|
|
74
|
-
self._raw_client = AuthenticatedClient(
|
|
75
|
-
base_url=f"{self._client_factory.base_url}/alfresco/api/-default-/public/authentication/versions/1",
|
|
76
|
-
token=self._client_factory.auth.get_auth_token(),
|
|
77
|
-
prefix=self._client_factory.auth.get_auth_prefix(),
|
|
78
|
-
verify_ssl=self._client_factory.verify_ssl
|
|
79
|
-
)
|
|
80
|
-
return self._raw_client
|
|
67
|
+
@property
|
|
68
|
+
def raw_client(self):
|
|
69
|
+
"""Delegate to parent client's raw client."""
|
|
70
|
+
return self.parent_client.raw_client
|
|
81
71
|
|
|
82
|
-
|
|
72
|
+
@property
|
|
73
|
+
def httpx_client(self):
|
|
74
|
+
"""Delegate to parent client's httpx client."""
|
|
75
|
+
return self.parent_client.httpx_client
|
|
76
|
+
|
|
77
|
+
# =================================================================
|
|
78
|
+
# AUTHENTICATION OPERATIONS - 4-PATTERN IMPLEMENTATION
|
|
79
|
+
# =================================================================
|
|
80
|
+
|
|
81
|
+
def create_ticket(
|
|
82
|
+
self,
|
|
83
|
+
username: str,
|
|
84
|
+
password: str
|
|
85
|
+
) -> Optional[Any]:
|
|
86
|
+
"""
|
|
87
|
+
Create authentication ticket (sync).
|
|
88
|
+
|
|
89
|
+
Creates a new authentication ticket for the given credentials.
|
|
90
|
+
"""
|
|
91
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
92
|
+
raise ImportError("Raw authentication operations not available")
|
|
93
|
+
|
|
94
|
+
from ....raw_clients.alfresco_auth_client.auth_client.models.ticket_body import TicketBody
|
|
95
|
+
|
|
96
|
+
ticket_body = TicketBody(user_id=username, password=password)
|
|
97
|
+
|
|
98
|
+
return self._create_ticket.sync(
|
|
99
|
+
client=self.raw_client,
|
|
100
|
+
body=ticket_body
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
async def create_ticket_async(
|
|
104
|
+
self,
|
|
105
|
+
username: str,
|
|
106
|
+
password: str
|
|
107
|
+
) -> Optional[Any]:
|
|
108
|
+
"""
|
|
109
|
+
Create authentication ticket (async).
|
|
110
|
+
|
|
111
|
+
Creates a new authentication ticket for the given credentials.
|
|
112
|
+
"""
|
|
113
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
114
|
+
raise ImportError("Raw authentication operations not available")
|
|
115
|
+
|
|
116
|
+
from ....raw_clients.alfresco_auth_client.auth_client.models.ticket_body import TicketBody
|
|
117
|
+
|
|
118
|
+
ticket_body = TicketBody(user_id=username, password=password)
|
|
119
|
+
|
|
120
|
+
return await self._create_ticket.asyncio(
|
|
121
|
+
client=self.raw_client,
|
|
122
|
+
body=ticket_body
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
def create_ticket_detailed(
|
|
126
|
+
self,
|
|
127
|
+
username: str,
|
|
128
|
+
password: str
|
|
129
|
+
) -> Response:
|
|
130
|
+
"""
|
|
131
|
+
Create authentication ticket (detailed sync).
|
|
132
|
+
|
|
133
|
+
Creates a new authentication ticket with full HTTP response.
|
|
134
|
+
"""
|
|
135
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
136
|
+
raise ImportError("Raw authentication operations not available")
|
|
137
|
+
|
|
138
|
+
from ....raw_clients.alfresco_auth_client.auth_client.models.ticket_body import TicketBody
|
|
139
|
+
|
|
140
|
+
ticket_body = TicketBody(user_id=username, password=password)
|
|
141
|
+
|
|
142
|
+
return self._create_ticket.sync_detailed(
|
|
143
|
+
client=self.raw_client,
|
|
144
|
+
body=ticket_body
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
async def create_ticket_detailed_async(
|
|
148
|
+
self,
|
|
149
|
+
username: str,
|
|
150
|
+
password: str
|
|
151
|
+
) -> Response:
|
|
152
|
+
"""
|
|
153
|
+
Create authentication ticket (detailed async).
|
|
154
|
+
|
|
155
|
+
Creates a new authentication ticket with full HTTP response.
|
|
156
|
+
"""
|
|
157
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
158
|
+
raise ImportError("Raw authentication operations not available")
|
|
159
|
+
|
|
160
|
+
from ....raw_clients.alfresco_auth_client.auth_client.models.ticket_body import TicketBody
|
|
161
|
+
|
|
162
|
+
ticket_body = TicketBody(user_id=username, password=password)
|
|
163
|
+
|
|
164
|
+
return await self._create_ticket.asyncio_detailed(
|
|
165
|
+
client=self.raw_client,
|
|
166
|
+
body=ticket_body
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
def validate_ticket(self) -> Optional[Any]:
|
|
170
|
+
"""
|
|
171
|
+
Validate current authentication ticket (sync).
|
|
172
|
+
|
|
173
|
+
Validates the current authentication ticket.
|
|
174
|
+
"""
|
|
175
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
176
|
+
raise ImportError("Raw authentication operations not available")
|
|
177
|
+
|
|
178
|
+
return self._validate_ticket.sync(
|
|
179
|
+
client=self.raw_client
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
async def validate_ticket_async(self) -> Optional[Any]:
|
|
183
|
+
"""
|
|
184
|
+
Validate current authentication ticket (async).
|
|
185
|
+
|
|
186
|
+
Validates the current authentication ticket.
|
|
187
|
+
"""
|
|
188
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
189
|
+
raise ImportError("Raw authentication operations not available")
|
|
190
|
+
|
|
191
|
+
return await self._validate_ticket.asyncio(
|
|
192
|
+
client=self.raw_client
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
def validate_ticket_detailed(self) -> Response:
|
|
196
|
+
"""
|
|
197
|
+
Validate current authentication ticket (detailed sync).
|
|
198
|
+
|
|
199
|
+
Validates the current authentication ticket with full HTTP response.
|
|
200
|
+
"""
|
|
201
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
202
|
+
raise ImportError("Raw authentication operations not available")
|
|
203
|
+
|
|
204
|
+
return self._validate_ticket.sync_detailed(
|
|
205
|
+
client=self.raw_client
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
async def validate_ticket_detailed_async(self) -> Response:
|
|
209
|
+
"""
|
|
210
|
+
Validate current authentication ticket (detailed async).
|
|
211
|
+
|
|
212
|
+
Validates the current authentication ticket with full HTTP response.
|
|
213
|
+
"""
|
|
214
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
215
|
+
raise ImportError("Raw authentication operations not available")
|
|
216
|
+
|
|
217
|
+
return await self._validate_ticket.asyncio_detailed(
|
|
218
|
+
client=self.raw_client
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
def delete_ticket(self) -> Optional[Any]:
|
|
83
222
|
"""
|
|
84
|
-
|
|
223
|
+
Delete current authentication ticket (sync).
|
|
85
224
|
|
|
86
|
-
|
|
225
|
+
Deletes/invalidates the current authentication ticket.
|
|
87
226
|
"""
|
|
88
|
-
|
|
227
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
228
|
+
raise ImportError("Raw authentication operations not available")
|
|
229
|
+
|
|
230
|
+
return self._delete_ticket.sync(
|
|
231
|
+
client=self.raw_client
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
async def delete_ticket_async(self) -> Optional[Any]:
|
|
235
|
+
"""
|
|
236
|
+
Delete current authentication ticket (async).
|
|
237
|
+
|
|
238
|
+
Deletes/invalidates the current authentication ticket.
|
|
239
|
+
"""
|
|
240
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
241
|
+
raise ImportError("Raw authentication operations not available")
|
|
242
|
+
|
|
243
|
+
return await self._delete_ticket.asyncio(
|
|
244
|
+
client=self.raw_client
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
def delete_ticket_detailed(self) -> Response:
|
|
248
|
+
"""
|
|
249
|
+
Delete current authentication ticket (detailed sync).
|
|
250
|
+
|
|
251
|
+
Deletes/invalidates the current authentication ticket with full HTTP response.
|
|
252
|
+
"""
|
|
253
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
254
|
+
raise ImportError("Raw authentication operations not available")
|
|
255
|
+
|
|
256
|
+
return self._delete_ticket.sync_detailed(
|
|
257
|
+
client=self.raw_client
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
async def delete_ticket_detailed_async(self) -> Response:
|
|
261
|
+
"""
|
|
262
|
+
Delete current authentication ticket (detailed async).
|
|
263
|
+
|
|
264
|
+
Deletes/invalidates the current authentication ticket with full HTTP response.
|
|
265
|
+
"""
|
|
266
|
+
if not RAW_OPERATIONS_AVAILABLE:
|
|
267
|
+
raise ImportError("Raw authentication operations not available")
|
|
268
|
+
|
|
269
|
+
return await self._delete_ticket.asyncio_detailed(
|
|
270
|
+
client=self.raw_client
|
|
271
|
+
)
|
|
89
272
|
|
|
90
|
-
# Placeholder for authentication operations - will be populated from the original file
|
|
91
273
|
def __repr__(self) -> str:
|
|
92
274
|
"""String representation for debugging."""
|
|
93
|
-
base_url = getattr(self._client_factory, 'base_url', 'unknown')
|
|
275
|
+
base_url = getattr(self.parent_client._client_factory, 'base_url', 'unknown')
|
|
94
276
|
return f"AlfrescoAuthenticationClient(base_url='{base_url}')"
|
|
@@ -184,7 +184,7 @@ def enhanced_search_example():
|
|
|
184
184
|
|
|
185
185
|
if __name__ == "__main__":
|
|
186
186
|
"""Test the conversion utilities."""
|
|
187
|
-
print("
|
|
187
|
+
print("[TESTING] Testing Conversion Utilities")
|
|
188
188
|
|
|
189
189
|
# Test 1: Enhanced create node
|
|
190
190
|
print("\n1. Enhanced create node conversion:")
|
|
@@ -194,4 +194,4 @@ if __name__ == "__main__":
|
|
|
194
194
|
print("\n2. Enhanced search example:")
|
|
195
195
|
enhanced_search_example()
|
|
196
196
|
|
|
197
|
-
print("\n
|
|
197
|
+
print("\n[SUCCESS] Conversion utilities proof-of-concept complete!")
|
|
@@ -45,9 +45,9 @@ class ActionsClient:
|
|
|
45
45
|
- Detailed sync/async for full HTTP response access
|
|
46
46
|
"""
|
|
47
47
|
|
|
48
|
-
def __init__(self,
|
|
48
|
+
def __init__(self, parent_client):
|
|
49
49
|
"""Initialize with client factory for raw client access."""
|
|
50
|
-
self.
|
|
50
|
+
self.parent_client = parent_client
|
|
51
51
|
self._raw_client = None
|
|
52
52
|
|
|
53
53
|
# Store raw operation references
|
|
@@ -57,28 +57,15 @@ class ActionsClient:
|
|
|
57
57
|
self._list_actions = _list_actions
|
|
58
58
|
self._node_actions = _node_actions
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
from ....raw_clients.alfresco_core_client.core_client.client import AuthenticatedClient
|
|
65
|
-
|
|
66
|
-
# Create the raw client with same auth setup
|
|
67
|
-
self._raw_client = AuthenticatedClient(
|
|
68
|
-
base_url=f"{self._client_factory.base_url}/alfresco/api/-default-/public/alfresco/versions/1",
|
|
69
|
-
token=self._client_factory.auth.get_auth_token(),
|
|
70
|
-
prefix=self._client_factory.auth.get_auth_prefix(),
|
|
71
|
-
verify_ssl=self._client_factory.verify_ssl
|
|
72
|
-
)
|
|
73
|
-
return self._raw_client
|
|
60
|
+
@property
|
|
61
|
+
def raw_client(self):
|
|
62
|
+
"""Delegate to parent client's raw client."""
|
|
63
|
+
return self.parent_client.raw_client
|
|
74
64
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
Perfect for MCP servers that need raw HTTP access.
|
|
80
|
-
"""
|
|
81
|
-
return self._get_raw_client().get_httpx_client()
|
|
65
|
+
@property
|
|
66
|
+
def httpx_client(self):
|
|
67
|
+
"""Delegate to parent client's httpx client."""
|
|
68
|
+
return self.parent_client.httpx_client
|
|
82
69
|
|
|
83
70
|
# ==================== 4-PATTERN OPERATIONS ====================
|
|
84
71
|
|
|
@@ -94,7 +81,7 @@ class ActionsClient:
|
|
|
94
81
|
if not hasattr(self, '_action_details'):
|
|
95
82
|
raise ImportError("Raw client operation not available")
|
|
96
83
|
|
|
97
|
-
result = self._action_details.sync(client=self.
|
|
84
|
+
result = self._action_details.sync(client=self.raw_client, action_definition_id=action_definition_id)
|
|
98
85
|
|
|
99
86
|
# Convert to standardized response
|
|
100
87
|
from ..models import BaseEntry
|
|
@@ -110,7 +97,7 @@ class ActionsClient:
|
|
|
110
97
|
if not hasattr(self, '_action_details'):
|
|
111
98
|
raise ImportError("Raw client operation not available")
|
|
112
99
|
|
|
113
|
-
result = await self._action_details.asyncio(client=self.
|
|
100
|
+
result = await self._action_details.asyncio(client=self.raw_client, action_definition_id=action_definition_id)
|
|
114
101
|
|
|
115
102
|
# Convert to standardized response
|
|
116
103
|
from ..models import BaseEntry
|
|
@@ -126,7 +113,7 @@ class ActionsClient:
|
|
|
126
113
|
if not hasattr(self, '_action_details'):
|
|
127
114
|
raise ImportError("Raw client operation not available")
|
|
128
115
|
|
|
129
|
-
return self._action_details.sync_detailed(client=self.
|
|
116
|
+
return self._action_details.sync_detailed(client=self.raw_client, action_definition_id=action_definition_id)
|
|
130
117
|
|
|
131
118
|
async def action_details_detailed_async(self, action_definition_id: Any):
|
|
132
119
|
"""
|
|
@@ -138,7 +125,7 @@ class ActionsClient:
|
|
|
138
125
|
if not hasattr(self, '_action_details'):
|
|
139
126
|
raise ImportError("Raw client operation not available")
|
|
140
127
|
|
|
141
|
-
return await self._action_details.asyncio_detailed(client=self.
|
|
128
|
+
return await self._action_details.asyncio_detailed(client=self.raw_client, action_definition_id=action_definition_id)
|
|
142
129
|
|
|
143
130
|
# ==================== ACTION_EXEC OPERATION ====================
|
|
144
131
|
|
|
@@ -152,7 +139,7 @@ class ActionsClient:
|
|
|
152
139
|
if not hasattr(self, '_action_exec'):
|
|
153
140
|
raise ImportError("Raw client operation not available")
|
|
154
141
|
|
|
155
|
-
result = self._action_exec.sync(client=self.
|
|
142
|
+
result = self._action_exec.sync(client=self.raw_client, body=body)
|
|
156
143
|
|
|
157
144
|
# Convert to standardized response
|
|
158
145
|
from ..models import BaseEntry
|
|
@@ -168,7 +155,7 @@ class ActionsClient:
|
|
|
168
155
|
if not hasattr(self, '_action_exec'):
|
|
169
156
|
raise ImportError("Raw client operation not available")
|
|
170
157
|
|
|
171
|
-
result = await self._action_exec.asyncio(client=self.
|
|
158
|
+
result = await self._action_exec.asyncio(client=self.raw_client, body=body)
|
|
172
159
|
|
|
173
160
|
# Convert to standardized response
|
|
174
161
|
from ..models import BaseEntry
|
|
@@ -184,7 +171,7 @@ class ActionsClient:
|
|
|
184
171
|
if not hasattr(self, '_action_exec'):
|
|
185
172
|
raise ImportError("Raw client operation not available")
|
|
186
173
|
|
|
187
|
-
return self._action_exec.sync_detailed(client=self.
|
|
174
|
+
return self._action_exec.sync_detailed(client=self.raw_client, body=body)
|
|
188
175
|
|
|
189
176
|
async def action_exec_detailed_async(self, body: Any):
|
|
190
177
|
"""
|
|
@@ -196,7 +183,7 @@ class ActionsClient:
|
|
|
196
183
|
if not hasattr(self, '_action_exec'):
|
|
197
184
|
raise ImportError("Raw client operation not available")
|
|
198
185
|
|
|
199
|
-
return await self._action_exec.asyncio_detailed(client=self.
|
|
186
|
+
return await self._action_exec.asyncio_detailed(client=self.raw_client, body=body)
|
|
200
187
|
|
|
201
188
|
# ==================== LIST_ACTIONS OPERATION ====================
|
|
202
189
|
|
|
@@ -210,7 +197,7 @@ class ActionsClient:
|
|
|
210
197
|
if not hasattr(self, '_list_actions'):
|
|
211
198
|
raise ImportError("Raw client operation not available")
|
|
212
199
|
|
|
213
|
-
result = self._list_actions.sync(client=self.
|
|
200
|
+
result = self._list_actions.sync(client=self.raw_client, skip_count=skip_count, max_items=max_items, order_by=order_by, fields=fields)
|
|
214
201
|
|
|
215
202
|
# Convert to standardized response
|
|
216
203
|
from ..models import BaseEntry
|
|
@@ -226,7 +213,7 @@ class ActionsClient:
|
|
|
226
213
|
if not hasattr(self, '_list_actions'):
|
|
227
214
|
raise ImportError("Raw client operation not available")
|
|
228
215
|
|
|
229
|
-
result = await self._list_actions.asyncio(client=self.
|
|
216
|
+
result = await self._list_actions.asyncio(client=self.raw_client, skip_count=skip_count, max_items=max_items, order_by=order_by, fields=fields)
|
|
230
217
|
|
|
231
218
|
# Convert to standardized response
|
|
232
219
|
from ..models import BaseEntry
|
|
@@ -242,7 +229,7 @@ class ActionsClient:
|
|
|
242
229
|
if not hasattr(self, '_list_actions'):
|
|
243
230
|
raise ImportError("Raw client operation not available")
|
|
244
231
|
|
|
245
|
-
return self._list_actions.sync_detailed(client=self.
|
|
232
|
+
return self._list_actions.sync_detailed(client=self.raw_client, skip_count=skip_count, max_items=max_items, order_by=order_by, fields=fields)
|
|
246
233
|
|
|
247
234
|
async def list_actions_detailed_async(self, skip_count: Any, max_items: Any, order_by: Any, fields: Any):
|
|
248
235
|
"""
|
|
@@ -254,7 +241,7 @@ class ActionsClient:
|
|
|
254
241
|
if not hasattr(self, '_list_actions'):
|
|
255
242
|
raise ImportError("Raw client operation not available")
|
|
256
243
|
|
|
257
|
-
return await self._list_actions.asyncio_detailed(client=self.
|
|
244
|
+
return await self._list_actions.asyncio_detailed(client=self.raw_client, skip_count=skip_count, max_items=max_items, order_by=order_by, fields=fields)
|
|
258
245
|
|
|
259
246
|
# ==================== NODE_ACTIONS OPERATION ====================
|
|
260
247
|
|
|
@@ -268,7 +255,7 @@ class ActionsClient:
|
|
|
268
255
|
if not hasattr(self, '_node_actions'):
|
|
269
256
|
raise ImportError("Raw client operation not available")
|
|
270
257
|
|
|
271
|
-
result = self._node_actions.sync(client=self.
|
|
258
|
+
result = self._node_actions.sync(client=self.raw_client, node_id=node_id, skip_count=skip_count, max_items=max_items, order_by=order_by, fields=fields)
|
|
272
259
|
|
|
273
260
|
# Convert to standardized response
|
|
274
261
|
from ..models import BaseEntry
|
|
@@ -284,7 +271,7 @@ class ActionsClient:
|
|
|
284
271
|
if not hasattr(self, '_node_actions'):
|
|
285
272
|
raise ImportError("Raw client operation not available")
|
|
286
273
|
|
|
287
|
-
result = await self._node_actions.asyncio(client=self.
|
|
274
|
+
result = await self._node_actions.asyncio(client=self.raw_client, node_id=node_id, skip_count=skip_count, max_items=max_items, order_by=order_by, fields=fields)
|
|
288
275
|
|
|
289
276
|
# Convert to standardized response
|
|
290
277
|
from ..models import BaseEntry
|
|
@@ -300,7 +287,7 @@ class ActionsClient:
|
|
|
300
287
|
if not hasattr(self, '_node_actions'):
|
|
301
288
|
raise ImportError("Raw client operation not available")
|
|
302
289
|
|
|
303
|
-
return self._node_actions.sync_detailed(client=self.
|
|
290
|
+
return self._node_actions.sync_detailed(client=self.raw_client, node_id=node_id, skip_count=skip_count, max_items=max_items, order_by=order_by, fields=fields)
|
|
304
291
|
|
|
305
292
|
async def node_actions_detailed_async(self, node_id: Any, skip_count: Any, max_items: Any, order_by: Any, fields: Any):
|
|
306
293
|
"""
|
|
@@ -312,7 +299,7 @@ class ActionsClient:
|
|
|
312
299
|
if not hasattr(self, '_node_actions'):
|
|
313
300
|
raise ImportError("Raw client operation not available")
|
|
314
301
|
|
|
315
|
-
return await self._node_actions.asyncio_detailed(client=self.
|
|
302
|
+
return await self._node_actions.asyncio_detailed(client=self.raw_client, node_id=node_id, skip_count=skip_count, max_items=max_items, order_by=order_by, fields=fields)
|
|
316
303
|
|
|
317
304
|
def __repr__(self) -> str:
|
|
318
305
|
"""String representation for debugging."""
|
|
@@ -42,37 +42,24 @@ class ActivitiesClient:
|
|
|
42
42
|
- Detailed sync/async for full HTTP response access
|
|
43
43
|
"""
|
|
44
44
|
|
|
45
|
-
def __init__(self,
|
|
45
|
+
def __init__(self, parent_client):
|
|
46
46
|
"""Initialize with client factory for raw client access."""
|
|
47
|
-
self.
|
|
47
|
+
self.parent_client = parent_client
|
|
48
48
|
self._raw_client = None
|
|
49
49
|
|
|
50
50
|
# Store raw operation references
|
|
51
51
|
if RAW_OPERATIONS_AVAILABLE:
|
|
52
52
|
self._list_activities_for_person = _list_activities_for_person
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
from ....raw_clients.alfresco_core_client.core_client.client import AuthenticatedClient
|
|
59
|
-
|
|
60
|
-
# Create the raw client with same auth setup
|
|
61
|
-
self._raw_client = AuthenticatedClient(
|
|
62
|
-
base_url=f"{self._client_factory.base_url}/alfresco/api/-default-/public/alfresco/versions/1",
|
|
63
|
-
token=self._client_factory.auth.get_auth_token(),
|
|
64
|
-
prefix=self._client_factory.auth.get_auth_prefix(),
|
|
65
|
-
verify_ssl=self._client_factory.verify_ssl
|
|
66
|
-
)
|
|
67
|
-
return self._raw_client
|
|
54
|
+
@property
|
|
55
|
+
def raw_client(self):
|
|
56
|
+
"""Delegate to parent client's raw client."""
|
|
57
|
+
return self.parent_client.raw_client
|
|
68
58
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
Perfect for MCP servers that need raw HTTP access.
|
|
74
|
-
"""
|
|
75
|
-
return self._get_raw_client().get_httpx_client()
|
|
59
|
+
@property
|
|
60
|
+
def httpx_client(self):
|
|
61
|
+
"""Delegate to parent client's httpx client."""
|
|
62
|
+
return self.parent_client.httpx_client
|
|
76
63
|
|
|
77
64
|
# ==================== 4-PATTERN OPERATIONS ====================
|
|
78
65
|
|
|
@@ -88,7 +75,7 @@ class ActivitiesClient:
|
|
|
88
75
|
if not hasattr(self, '_list_activities_for_person'):
|
|
89
76
|
raise ImportError("Raw client operation not available")
|
|
90
77
|
|
|
91
|
-
result = self._list_activities_for_person.sync(client=self.
|
|
78
|
+
result = self._list_activities_for_person.sync(client=self.raw_client, person_id=person_id, skip_count=skip_count, max_items=max_items, who=who, site_id=site_id, fields=fields)
|
|
92
79
|
|
|
93
80
|
# Convert to standardized response
|
|
94
81
|
from ..models import BaseEntry
|
|
@@ -104,7 +91,7 @@ class ActivitiesClient:
|
|
|
104
91
|
if not hasattr(self, '_list_activities_for_person'):
|
|
105
92
|
raise ImportError("Raw client operation not available")
|
|
106
93
|
|
|
107
|
-
result = await self._list_activities_for_person.asyncio(client=self.
|
|
94
|
+
result = await self._list_activities_for_person.asyncio(client=self.raw_client, person_id=person_id, skip_count=skip_count, max_items=max_items, who=who, site_id=site_id, fields=fields)
|
|
108
95
|
|
|
109
96
|
# Convert to standardized response
|
|
110
97
|
from ..models import BaseEntry
|
|
@@ -120,7 +107,7 @@ class ActivitiesClient:
|
|
|
120
107
|
if not hasattr(self, '_list_activities_for_person'):
|
|
121
108
|
raise ImportError("Raw client operation not available")
|
|
122
109
|
|
|
123
|
-
return self._list_activities_for_person.sync_detailed(client=self.
|
|
110
|
+
return self._list_activities_for_person.sync_detailed(client=self.raw_client, person_id=person_id, skip_count=skip_count, max_items=max_items, who=who, site_id=site_id, fields=fields)
|
|
124
111
|
|
|
125
112
|
async def list_activities_for_person_detailed_async(self, person_id: Any, skip_count: Any, max_items: Any, who: Any, site_id: Any, fields: Any):
|
|
126
113
|
"""
|
|
@@ -132,7 +119,7 @@ class ActivitiesClient:
|
|
|
132
119
|
if not hasattr(self, '_list_activities_for_person'):
|
|
133
120
|
raise ImportError("Raw client operation not available")
|
|
134
121
|
|
|
135
|
-
return await self._list_activities_for_person.asyncio_detailed(client=self.
|
|
122
|
+
return await self._list_activities_for_person.asyncio_detailed(client=self.raw_client, person_id=person_id, skip_count=skip_count, max_items=max_items, who=who, site_id=site_id, fields=fields)
|
|
136
123
|
|
|
137
124
|
|
|
138
125
|
def __repr__(self) -> str:
|