maleo-identity 0.0.77__py3-none-any.whl → 0.0.79__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.

Potentially problematic release.


This version of maleo-identity might be problematic. Click here for more details.

@@ -1,276 +1,276 @@
1
- import json
2
- from copy import deepcopy
3
- from Crypto.PublicKey.RSA import RsaKey
4
- from datetime import datetime, timezone
5
- from redis.asyncio.client import Redis
6
- from typing import Dict, List, Optional
7
- from uuid import UUID
8
- from maleo.soma.authorization import BearerAuth
9
- from maleo.soma.dtos.configurations.cache.redis import RedisCacheNamespaces
10
- from maleo.soma.enums.environment import Environment
11
- from maleo.soma.enums.expiration import Expiration
12
- from maleo.soma.enums.logging import LogLevel
13
- from maleo.soma.enums.operation import OperationTarget
14
- from maleo.soma.managers.client.maleo import MaleoClientService
15
- from maleo.soma.managers.client.http import HTTPClientManager
16
- from maleo.soma.managers.credential import CredentialManager
17
- from maleo.soma.schemas.authentication import Authentication
18
- from maleo.soma.schemas.authorization import Authorization
19
- from maleo.soma.schemas.data import DataPair
20
- from maleo.soma.schemas.operation.context import (
21
- OperationContextSchema,
22
- OperationOriginSchema,
23
- OperationLayerSchema,
24
- OperationTargetSchema,
25
- )
26
- from maleo.soma.schemas.operation.resource import (
27
- ReadMultipleResourceOperationSchema,
28
- )
29
- from maleo.soma.schemas.operation.resource.action import ReadResourceOperationAction
30
- from maleo.soma.schemas.operation.resource.result import (
31
- ReadMultipleResourceOperationResult,
32
- )
33
- from maleo.soma.schemas.operation.timestamp import OperationTimestamp
34
- from maleo.soma.schemas.pagination import StrictPagination
35
- from maleo.soma.schemas.request import RequestContext
36
- from maleo.soma.schemas.response import (
37
- MultipleDataResponseSchema,
38
- )
39
- from maleo.soma.schemas.service import ServiceContext
40
- from maleo.soma.utils.cache import build_key
41
- from maleo.soma.utils.logging import ClientLogger
42
- from maleo.soma.utils.merger import merge_dicts
43
- from maleo.soma.utils.token import reencode
44
- from maleo.identity.constants.organization_role import RESOURCE
45
- from maleo.identity.schemas.data.organization_role import OrganizationRoleDataSchema
46
- from maleo.identity.schemas.parameter.client.organization_role import (
47
- ReadMultipleParameter,
48
- ReadMultipleQueryParameter,
49
- )
1
+ # import json
2
+ # from copy import deepcopy
3
+ # from Crypto.PublicKey.RSA import RsaKey
4
+ # from datetime import datetime, timezone
5
+ # from redis.asyncio.client import Redis
6
+ # from typing import Dict, List, Optional
7
+ # from uuid import UUID
8
+ # from maleo.soma.authorization import BearerAuth
9
+ # from maleo.soma.dtos.configurations.cache.redis import RedisCacheNamespaces
10
+ # from maleo.soma.enums.environment import Environment
11
+ # from maleo.soma.enums.expiration import Expiration
12
+ # from maleo.soma.enums.logging import LogLevel
13
+ # from maleo.soma.enums.operation import OperationTarget
14
+ # from maleo.soma.managers.client.maleo import MaleoClientService
15
+ # from maleo.soma.managers.client.http import HTTPClientManager
16
+ # from maleo.soma.managers.credential import CredentialManager
17
+ # from maleo.soma.schemas.authentication import Authentication
18
+ # from maleo.soma.schemas.authorization import Authorization
19
+ # from maleo.soma.schemas.data import DataPair
20
+ # from maleo.soma.schemas.operation.context import (
21
+ # OperationContextSchema,
22
+ # OperationOriginSchema,
23
+ # OperationLayerSchema,
24
+ # OperationTargetSchema,
25
+ # )
26
+ # from maleo.soma.schemas.operation.resource import (
27
+ # ReadMultipleResourceOperationSchema,
28
+ # )
29
+ # from maleo.soma.schemas.operation.resource.action import ReadResourceOperationAction
30
+ # from maleo.soma.schemas.operation.resource.result import (
31
+ # ReadMultipleResourceOperationResult,
32
+ # )
33
+ # from maleo.soma.schemas.operation.timestamp import OperationTimestamp
34
+ # from maleo.soma.schemas.pagination import StrictPagination
35
+ # from maleo.soma.schemas.request import RequestContext
36
+ # from maleo.soma.schemas.response import (
37
+ # MultipleDataResponseSchema,
38
+ # )
39
+ # from maleo.soma.schemas.service import ServiceContext
40
+ # from maleo.soma.utils.cache import build_key
41
+ # from maleo.soma.utils.logging import ClientLogger
42
+ # from maleo.soma.utils.merger import merge_dicts
43
+ # from maleo.soma.utils.token import reencode
44
+ # from maleo.identity.constants.organization_role import RESOURCE
45
+ # from maleo.identity.schemas.data.organization_role import OrganizationRoleDataSchema
46
+ # from maleo.identity.schemas.parameter.client.organization_role import (
47
+ # ReadMultipleParameter,
48
+ # ReadMultipleQueryParameter,
49
+ # )
50
50
 
51
51
 
52
- class OrganizationRoleClientService(MaleoClientService):
53
- def __init__(
54
- self,
55
- environment: Environment,
56
- key: str,
57
- url: str,
58
- operation_origin: OperationOriginSchema,
59
- logger: ClientLogger,
60
- credential_manager: CredentialManager,
61
- http_client_manager: HTTPClientManager,
62
- private_key: RsaKey,
63
- redis: Redis,
64
- redis_namespaces: RedisCacheNamespaces,
65
- service_context: ServiceContext,
66
- ):
67
- super().__init__(
68
- environment,
69
- key,
70
- url,
71
- operation_origin,
72
- logger,
73
- credential_manager,
74
- http_client_manager,
75
- private_key,
76
- redis,
77
- redis_namespaces,
78
- service_context,
79
- )
80
- # self._controllers = controllers
81
- self._namespace = self._redis_namespaces.create(
82
- self._key,
83
- RESOURCE.aggregate(),
84
- origin=self._CACHE_ORIGIN,
85
- layer=self._CACHE_LAYER,
86
- )
87
- self._default_operation_context = OperationContextSchema(
88
- origin=self._operation_origin,
89
- layer=OperationLayerSchema(type=self._OPERATION_LAYER_TYPE, details=None),
90
- target=OperationTargetSchema(
91
- type=self._OPERATION_TARGET_TYPE, details=None
92
- ),
93
- )
52
+ # class OrganizationRoleClientService(MaleoClientService):
53
+ # def __init__(
54
+ # self,
55
+ # environment: Environment,
56
+ # key: str,
57
+ # url: str,
58
+ # operation_origin: OperationOriginSchema,
59
+ # logger: ClientLogger,
60
+ # credential_manager: CredentialManager,
61
+ # http_client_manager: HTTPClientManager,
62
+ # private_key: RsaKey,
63
+ # redis: Redis,
64
+ # redis_namespaces: RedisCacheNamespaces,
65
+ # service_context: ServiceContext,
66
+ # ):
67
+ # super().__init__(
68
+ # environment,
69
+ # key,
70
+ # url,
71
+ # operation_origin,
72
+ # logger,
73
+ # credential_manager,
74
+ # http_client_manager,
75
+ # private_key,
76
+ # redis,
77
+ # redis_namespaces,
78
+ # service_context,
79
+ # )
80
+ # # self._controllers = controllers
81
+ # self._namespace = self._redis_namespaces.create(
82
+ # self._key,
83
+ # RESOURCE.aggregate(),
84
+ # origin=self._CACHE_ORIGIN,
85
+ # layer=self._CACHE_LAYER,
86
+ # )
87
+ # self._default_operation_context = OperationContextSchema(
88
+ # origin=self._operation_origin,
89
+ # layer=OperationLayerSchema(type=self._OPERATION_LAYER_TYPE, details=None),
90
+ # target=OperationTargetSchema(
91
+ # type=self._OPERATION_TARGET_TYPE, details=None
92
+ # ),
93
+ # )
94
94
 
95
- async def read_organization_roles(
96
- self,
97
- operation_id: UUID,
98
- request_context: RequestContext,
99
- authentication: Authentication,
100
- parameters: ReadMultipleParameter,
101
- authorization: Optional[Authorization] = None,
102
- headers: Optional[Dict[str, str]] = None,
103
- ) -> ReadMultipleResourceOperationResult[
104
- OrganizationRoleDataSchema, StrictPagination, None
105
- ]:
106
- """Retrieve organization roles from MaleoIdentity"""
107
- operation_action = ReadResourceOperationAction()
108
- executed_at = datetime.now(tz=timezone.utc)
95
+ # async def read_organization_roles(
96
+ # self,
97
+ # operation_id: UUID,
98
+ # request_context: RequestContext,
99
+ # authentication: Authentication,
100
+ # parameters: ReadMultipleParameter,
101
+ # authorization: Optional[Authorization] = None,
102
+ # headers: Optional[Dict[str, str]] = None,
103
+ # ) -> ReadMultipleResourceOperationResult[
104
+ # OrganizationRoleDataSchema, StrictPagination, None
105
+ # ]:
106
+ # """Retrieve organization roles from MaleoIdentity"""
107
+ # operation_action = ReadResourceOperationAction()
108
+ # executed_at = datetime.now(tz=timezone.utc)
109
109
 
110
- # Get function identifier
111
- func = self.__class__
112
- module, qualname = func.__module__, func.__qualname__
110
+ # # Get function identifier
111
+ # func = self.__class__
112
+ # module, qualname = func.__module__, func.__qualname__
113
113
 
114
- # Define arguments being used in this function
115
- positional_arguments = []
116
- keyword_arguments = {
117
- "authentication": authentication.model_dump(
118
- mode="json",
119
- exclude={
120
- "credentials": {
121
- "token": {
122
- "payload": {
123
- "iat_dt",
124
- "iat",
125
- "exp_dt",
126
- "exp",
127
- }
128
- }
129
- }
130
- },
131
- ),
132
- "parameters": parameters.model_dump(mode="json"),
133
- }
114
+ # # Define arguments being used in this function
115
+ # positional_arguments = []
116
+ # keyword_arguments = {
117
+ # "authentication": authentication.model_dump(
118
+ # mode="json",
119
+ # exclude={
120
+ # "credentials": {
121
+ # "token": {
122
+ # "payload": {
123
+ # "iat_dt",
124
+ # "iat",
125
+ # "exp_dt",
126
+ # "exp",
127
+ # }
128
+ # }
129
+ # }
130
+ # },
131
+ # ),
132
+ # "parameters": parameters.model_dump(mode="json"),
133
+ # }
134
134
 
135
- # Define full function string
136
- function = f"{qualname}({json.dumps(positional_arguments)}|{json.dumps(keyword_arguments)})"
135
+ # # Define full function string
136
+ # function = f"{qualname}({json.dumps(positional_arguments)}|{json.dumps(keyword_arguments)})"
137
137
 
138
- # Define full cache key
139
- cache_key = build_key(module, function, namespace=self._namespace)
138
+ # # Define full cache key
139
+ # cache_key = build_key(module, function, namespace=self._namespace)
140
140
 
141
- if parameters.use_cache:
142
- operation_context = deepcopy(self._default_operation_context)
143
- operation_context.target.type = OperationTarget.CACHE
141
+ # if parameters.use_cache:
142
+ # operation_context = deepcopy(self._default_operation_context)
143
+ # operation_context.target.type = OperationTarget.CACHE
144
144
 
145
- # Check redis for data
146
- result_str = await self._redis.get(cache_key)
145
+ # # Check redis for data
146
+ # result_str = await self._redis.get(cache_key)
147
147
 
148
- if result_str is not None:
149
- completed_at = datetime.now(tz=timezone.utc)
150
- result = ReadMultipleResourceOperationResult[
151
- OrganizationRoleDataSchema, StrictPagination, None
152
- ].model_validate(json.loads(result_str))
153
- ReadMultipleResourceOperationSchema[
154
- OrganizationRoleDataSchema, StrictPagination, None
155
- ](
156
- service_context=self._service_context,
157
- id=operation_id,
158
- context=operation_context,
159
- timestamp=OperationTimestamp(
160
- executed_at=executed_at,
161
- completed_at=completed_at,
162
- duration=(completed_at - executed_at).total_seconds(),
163
- ),
164
- summary="Successfully retrieved multiple organization roles from cache",
165
- request_context=request_context,
166
- authentication=authentication,
167
- action=operation_action,
168
- resource=RESOURCE,
169
- result=result,
170
- ).log(
171
- self._logger, level=LogLevel.INFO
172
- )
173
- return result
148
+ # if result_str is not None:
149
+ # completed_at = datetime.now(tz=timezone.utc)
150
+ # result = ReadMultipleResourceOperationResult[
151
+ # OrganizationRoleDataSchema, StrictPagination, None
152
+ # ].model_validate(json.loads(result_str))
153
+ # ReadMultipleResourceOperationSchema[
154
+ # OrganizationRoleDataSchema, StrictPagination, None
155
+ # ](
156
+ # service_context=self._service_context,
157
+ # id=operation_id,
158
+ # context=operation_context,
159
+ # timestamp=OperationTimestamp(
160
+ # executed_at=executed_at,
161
+ # completed_at=completed_at,
162
+ # duration=(completed_at - executed_at).total_seconds(),
163
+ # ),
164
+ # summary="Successfully retrieved multiple organization roles from cache",
165
+ # request_context=request_context,
166
+ # authentication=authentication,
167
+ # action=operation_action,
168
+ # resource=RESOURCE,
169
+ # result=result,
170
+ # ).log(
171
+ # self._logger, level=LogLevel.INFO
172
+ # )
173
+ # return result
174
174
 
175
- operation_context = deepcopy(self._default_operation_context)
176
- async with self._http_client_manager.get() as http_client:
177
- url = f"{self._url}/v1/{RESOURCE.identifiers[0].url_slug}/"
175
+ # operation_context = deepcopy(self._default_operation_context)
176
+ # async with self._http_client_manager.get() as http_client:
177
+ # url = f"{self._url}/v1/{RESOURCE.identifiers[0].url_slug}/"
178
178
 
179
- # Parse parameters to query params
180
- params = ReadMultipleQueryParameter.model_validate(
181
- parameters.model_dump()
182
- ).model_dump(exclude={"sort_columns", "date_filters"}, exclude_none=True)
179
+ # # Parse parameters to query params
180
+ # params = ReadMultipleQueryParameter.model_validate(
181
+ # parameters.model_dump()
182
+ # ).model_dump(exclude={"sort_columns", "date_filters"}, exclude_none=True)
183
183
 
184
- # Create headers
185
- base_headers = {
186
- "Content-Type": "application/json",
187
- "X-Operation_Id": str(operation_id),
188
- }
189
- if headers is not None:
190
- headers = merge_dicts(base_headers, headers)
191
- else:
192
- headers = base_headers
184
+ # # Create headers
185
+ # base_headers = {
186
+ # "Content-Type": "application/json",
187
+ # "X-Operation_Id": str(operation_id),
188
+ # }
189
+ # if headers is not None:
190
+ # headers = merge_dicts(base_headers, headers)
191
+ # else:
192
+ # headers = base_headers
193
193
 
194
- # Create auth
195
- token = None
196
- if authentication.credentials.token is not None:
197
- try:
198
- token = reencode(
199
- payload=authentication.credentials.token.payload,
200
- key=self._private_key,
201
- )
202
- except Exception:
203
- pass
194
+ # # Create auth
195
+ # token = None
196
+ # if authentication.credentials.token is not None:
197
+ # try:
198
+ # token = reencode(
199
+ # payload=authentication.credentials.token.payload,
200
+ # key=self._private_key,
201
+ # )
202
+ # except Exception:
203
+ # pass
204
204
 
205
- if (
206
- token is None
207
- and authorization is not None
208
- and authorization.scheme == "Bearer"
209
- ):
210
- token = authorization.credentials
205
+ # if (
206
+ # token is None
207
+ # and authorization is not None
208
+ # and authorization.scheme == "Bearer"
209
+ # ):
210
+ # token = authorization.credentials
211
211
 
212
- if token is None:
213
- token = self._credential_manager.token
212
+ # if token is None:
213
+ # token = self._credential_manager.token
214
214
 
215
- auth = BearerAuth(token) if token is not None else None
215
+ # auth = BearerAuth(token) if token is not None else None
216
216
 
217
- # Send request and wait for response
218
- response = await http_client.get(
219
- url=url, params=params, headers=headers, auth=auth
220
- )
217
+ # # Send request and wait for response
218
+ # response = await http_client.get(
219
+ # url=url, params=params, headers=headers, auth=auth
220
+ # )
221
221
 
222
- if response.is_success:
223
- completed_at = datetime.now(tz=timezone.utc)
224
- validated_response = MultipleDataResponseSchema[
225
- OrganizationRoleDataSchema, StrictPagination, None
226
- ].model_validate(response.json())
227
- data = DataPair[List[OrganizationRoleDataSchema], None](
228
- old=validated_response.data,
229
- new=None,
230
- )
231
- result = ReadMultipleResourceOperationResult[
232
- OrganizationRoleDataSchema, StrictPagination, None
233
- ](
234
- data=data,
235
- pagination=validated_response.pagination,
236
- metadata=None,
237
- other=None,
238
- )
239
- ReadMultipleResourceOperationSchema[
240
- OrganizationRoleDataSchema, StrictPagination, None
241
- ](
242
- service_context=self._service_context,
243
- id=operation_id,
244
- context=operation_context,
245
- timestamp=OperationTimestamp(
246
- executed_at=executed_at,
247
- completed_at=completed_at,
248
- duration=(completed_at - executed_at).total_seconds(),
249
- ),
250
- summary="Successfully retrieved multiple organization roles from http request",
251
- request_context=request_context,
252
- authentication=authentication,
253
- action=operation_action,
254
- resource=RESOURCE,
255
- result=result,
256
- ).log(
257
- self._logger, level=LogLevel.INFO
258
- )
222
+ # if response.is_success:
223
+ # completed_at = datetime.now(tz=timezone.utc)
224
+ # validated_response = MultipleDataResponseSchema[
225
+ # OrganizationRoleDataSchema, StrictPagination, None
226
+ # ].model_validate(response.json())
227
+ # data = DataPair[List[OrganizationRoleDataSchema], None](
228
+ # old=validated_response.data,
229
+ # new=None,
230
+ # )
231
+ # result = ReadMultipleResourceOperationResult[
232
+ # OrganizationRoleDataSchema, StrictPagination, None
233
+ # ](
234
+ # data=data,
235
+ # pagination=validated_response.pagination,
236
+ # metadata=None,
237
+ # other=None,
238
+ # )
239
+ # ReadMultipleResourceOperationSchema[
240
+ # OrganizationRoleDataSchema, StrictPagination, None
241
+ # ](
242
+ # service_context=self._service_context,
243
+ # id=operation_id,
244
+ # context=operation_context,
245
+ # timestamp=OperationTimestamp(
246
+ # executed_at=executed_at,
247
+ # completed_at=completed_at,
248
+ # duration=(completed_at - executed_at).total_seconds(),
249
+ # ),
250
+ # summary="Successfully retrieved multiple organization roles from http request",
251
+ # request_context=request_context,
252
+ # authentication=authentication,
253
+ # action=operation_action,
254
+ # resource=RESOURCE,
255
+ # result=result,
256
+ # ).log(
257
+ # self._logger, level=LogLevel.INFO
258
+ # )
259
259
 
260
- if parameters.use_cache:
261
- await self._redis.set(
262
- cache_key, result.model_dump_json(), Expiration.EXP_1WK
263
- )
260
+ # if parameters.use_cache:
261
+ # await self._redis.set(
262
+ # cache_key, result.model_dump_json(), Expiration.EXP_1WK
263
+ # )
264
264
 
265
- return result
265
+ # return result
266
266
 
267
- self._raise_resource_http_request_error(
268
- response=response,
269
- operation_id=operation_id,
270
- operation_context=operation_context,
271
- executed_at=executed_at,
272
- operation_action=operation_action,
273
- request_context=request_context,
274
- authentication=authentication,
275
- resource=RESOURCE,
276
- )
267
+ # self._raise_resource_http_request_error(
268
+ # response=response,
269
+ # operation_id=operation_id,
270
+ # operation_context=operation_context,
271
+ # executed_at=executed_at,
272
+ # operation_action=operation_action,
273
+ # request_context=request_context,
274
+ # authentication=authentication,
275
+ # resource=RESOURCE,
276
+ # )