maleo-identity 0.1.9__py3-none-any.whl → 0.1.11__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.
- maleo/identity/mixins/api_key.py +62 -1
- maleo/identity/mixins/organization.py +58 -2
- maleo/identity/mixins/organization_registration_code.py +85 -1
- maleo/identity/mixins/organization_relation.py +64 -1
- maleo/identity/mixins/patient.py +78 -2
- maleo/identity/mixins/user.py +75 -1
- maleo/identity/mixins/user_medical_role.py +63 -0
- maleo/identity/mixins/user_organization_role.py +65 -0
- maleo/identity/mixins/user_profile.py +77 -1
- maleo/identity/mixins/user_system_role.py +63 -0
- maleo/identity/models.py +5 -0
- maleo/identity/schemas/api_key.py +36 -10
- maleo/identity/schemas/common.py +2 -2
- maleo/identity/schemas/organization.py +131 -16
- maleo/identity/schemas/organization_registration_code.py +139 -14
- maleo/identity/schemas/organization_relation.py +138 -19
- maleo/identity/schemas/patient.py +129 -19
- maleo/identity/schemas/user.py +126 -15
- maleo/identity/schemas/user_medical_role.py +134 -18
- maleo/identity/schemas/user_organization_role.py +135 -18
- maleo/identity/schemas/user_profile.py +134 -15
- maleo/identity/schemas/user_system_role.py +134 -18
- {maleo_identity-0.1.9.dist-info → maleo_identity-0.1.11.dist-info}/METADATA +7 -8
- {maleo_identity-0.1.9.dist-info → maleo_identity-0.1.11.dist-info}/RECORD +27 -24
- {maleo_identity-0.1.9.dist-info → maleo_identity-0.1.11.dist-info}/WHEEL +0 -0
- {maleo_identity-0.1.9.dist-info → maleo_identity-0.1.11.dist-info}/licenses/LICENSE +0 -0
- {maleo_identity-0.1.9.dist-info → maleo_identity-0.1.11.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from pydantic import BaseModel, Field
|
|
2
|
-
from typing import Annotated, Generic, Literal,
|
|
2
|
+
from typing import Annotated, Generic, Literal, TypeVar, overload
|
|
3
3
|
from uuid import UUID
|
|
4
4
|
from maleo.enums.organization import (
|
|
5
5
|
OrganizationRelation,
|
|
@@ -13,7 +13,7 @@ from maleo.enums.status import (
|
|
|
13
13
|
)
|
|
14
14
|
from maleo.schemas.mixins.filter import convert as convert_filter
|
|
15
15
|
from maleo.schemas.mixins.identity import (
|
|
16
|
-
|
|
16
|
+
IdentifierMixin,
|
|
17
17
|
Ids,
|
|
18
18
|
UUIDs,
|
|
19
19
|
IntSourceId,
|
|
@@ -22,6 +22,7 @@ from maleo.schemas.mixins.identity import (
|
|
|
22
22
|
IntTargetIds,
|
|
23
23
|
)
|
|
24
24
|
from maleo.schemas.mixins.sort import convert as convert_sort
|
|
25
|
+
from maleo.schemas.operation.enums import ResourceOperationStatusUpdateType
|
|
25
26
|
from maleo.schemas.parameter import (
|
|
26
27
|
ReadSingleParameter as BaseReadSingleParameter,
|
|
27
28
|
ReadPaginatedMultipleParameter,
|
|
@@ -33,8 +34,12 @@ from maleo.types.dict import StrToAnyDict
|
|
|
33
34
|
from maleo.types.integer import OptListOfInts
|
|
34
35
|
from maleo.types.uuid import OptListOfUUIDs
|
|
35
36
|
from ..enums.organization_relation import IdentifierType
|
|
36
|
-
from ..mixins.organization_relation import
|
|
37
|
-
|
|
37
|
+
from ..mixins.organization_relation import (
|
|
38
|
+
IsBidirectional,
|
|
39
|
+
Meta,
|
|
40
|
+
OrganizationRelationIdentifier,
|
|
41
|
+
)
|
|
42
|
+
from ..types.organization_relation import CompositeIdentifier, IdentifierValueType
|
|
38
43
|
|
|
39
44
|
|
|
40
45
|
class CreateParameter(
|
|
@@ -82,7 +87,7 @@ class ReadMultipleParameter(
|
|
|
82
87
|
return params
|
|
83
88
|
|
|
84
89
|
|
|
85
|
-
class ReadSingleParameter(BaseReadSingleParameter[
|
|
90
|
+
class ReadSingleParameter(BaseReadSingleParameter[OrganizationRelationIdentifier]):
|
|
86
91
|
@overload
|
|
87
92
|
@classmethod
|
|
88
93
|
def new(
|
|
@@ -106,7 +111,7 @@ class ReadSingleParameter(BaseReadSingleParameter[IdentifierType, IdentifierValu
|
|
|
106
111
|
def new(
|
|
107
112
|
cls,
|
|
108
113
|
identifier_type: Literal[IdentifierType.COMPOSITE],
|
|
109
|
-
identifier_value:
|
|
114
|
+
identifier_value: CompositeIdentifier,
|
|
110
115
|
statuses: ListOfDataStatuses = list(FULL_DATA_STATUSES),
|
|
111
116
|
use_cache: bool = True,
|
|
112
117
|
) -> "ReadSingleParameter": ...
|
|
@@ -128,8 +133,9 @@ class ReadSingleParameter(BaseReadSingleParameter[IdentifierType, IdentifierValu
|
|
|
128
133
|
use_cache: bool = True,
|
|
129
134
|
) -> "ReadSingleParameter":
|
|
130
135
|
return cls(
|
|
131
|
-
|
|
132
|
-
|
|
136
|
+
identifier=OrganizationRelationIdentifier(
|
|
137
|
+
type=identifier_type, value=identifier_value
|
|
138
|
+
),
|
|
133
139
|
statuses=statuses,
|
|
134
140
|
use_cache=use_cache,
|
|
135
141
|
)
|
|
@@ -157,22 +163,135 @@ class UpdateDataMixin(BaseModel, Generic[UpdateDataT]):
|
|
|
157
163
|
|
|
158
164
|
class UpdateParameter(
|
|
159
165
|
UpdateDataMixin[UpdateDataT],
|
|
160
|
-
|
|
161
|
-
IdentifierType,
|
|
162
|
-
IdentifierValueType,
|
|
163
|
-
],
|
|
166
|
+
IdentifierMixin[OrganizationRelationIdentifier],
|
|
164
167
|
Generic[UpdateDataT],
|
|
165
168
|
):
|
|
166
|
-
|
|
169
|
+
@overload
|
|
170
|
+
@classmethod
|
|
171
|
+
def new(
|
|
172
|
+
cls,
|
|
173
|
+
identifier_type: Literal[IdentifierType.ID],
|
|
174
|
+
identifier_value: int,
|
|
175
|
+
data: UpdateDataT,
|
|
176
|
+
) -> "UpdateParameter": ...
|
|
177
|
+
@overload
|
|
178
|
+
@classmethod
|
|
179
|
+
def new(
|
|
180
|
+
cls,
|
|
181
|
+
identifier_type: Literal[IdentifierType.UUID],
|
|
182
|
+
identifier_value: UUID,
|
|
183
|
+
data: UpdateDataT,
|
|
184
|
+
) -> "UpdateParameter": ...
|
|
185
|
+
@overload
|
|
186
|
+
@classmethod
|
|
187
|
+
def new(
|
|
188
|
+
cls,
|
|
189
|
+
identifier_type: Literal[IdentifierType.COMPOSITE],
|
|
190
|
+
identifier_value: CompositeIdentifier,
|
|
191
|
+
data: UpdateDataT,
|
|
192
|
+
) -> "UpdateParameter": ...
|
|
193
|
+
@overload
|
|
194
|
+
@classmethod
|
|
195
|
+
def new(
|
|
196
|
+
cls,
|
|
197
|
+
identifier_type: IdentifierType,
|
|
198
|
+
identifier_value: IdentifierValueType,
|
|
199
|
+
data: UpdateDataT,
|
|
200
|
+
) -> "UpdateParameter": ...
|
|
201
|
+
@classmethod
|
|
202
|
+
def new(
|
|
203
|
+
cls,
|
|
204
|
+
identifier_type: IdentifierType,
|
|
205
|
+
identifier_value: IdentifierValueType,
|
|
206
|
+
data: UpdateDataT,
|
|
207
|
+
) -> "UpdateParameter":
|
|
208
|
+
return cls(
|
|
209
|
+
identifier=OrganizationRelationIdentifier(
|
|
210
|
+
type=identifier_type, value=identifier_value
|
|
211
|
+
),
|
|
212
|
+
data=data,
|
|
213
|
+
)
|
|
167
214
|
|
|
168
215
|
|
|
169
216
|
class StatusUpdateParameter(
|
|
170
|
-
BaseStatusUpdateParameter[
|
|
217
|
+
BaseStatusUpdateParameter[OrganizationRelationIdentifier],
|
|
171
218
|
):
|
|
172
|
-
|
|
219
|
+
@overload
|
|
220
|
+
@classmethod
|
|
221
|
+
def new(
|
|
222
|
+
cls,
|
|
223
|
+
identifier_type: Literal[IdentifierType.ID],
|
|
224
|
+
identifier_value: int,
|
|
225
|
+
type: ResourceOperationStatusUpdateType,
|
|
226
|
+
) -> "StatusUpdateParameter": ...
|
|
227
|
+
@overload
|
|
228
|
+
@classmethod
|
|
229
|
+
def new(
|
|
230
|
+
cls,
|
|
231
|
+
identifier_type: Literal[IdentifierType.UUID],
|
|
232
|
+
identifier_value: UUID,
|
|
233
|
+
type: ResourceOperationStatusUpdateType,
|
|
234
|
+
) -> "StatusUpdateParameter": ...
|
|
235
|
+
@overload
|
|
236
|
+
@classmethod
|
|
237
|
+
def new(
|
|
238
|
+
cls,
|
|
239
|
+
identifier_type: Literal[IdentifierType.COMPOSITE],
|
|
240
|
+
identifier_value: CompositeIdentifier,
|
|
241
|
+
type: ResourceOperationStatusUpdateType,
|
|
242
|
+
) -> "StatusUpdateParameter": ...
|
|
243
|
+
@overload
|
|
244
|
+
@classmethod
|
|
245
|
+
def new(
|
|
246
|
+
cls,
|
|
247
|
+
identifier_type: IdentifierType,
|
|
248
|
+
identifier_value: IdentifierValueType,
|
|
249
|
+
type: ResourceOperationStatusUpdateType,
|
|
250
|
+
) -> "StatusUpdateParameter": ...
|
|
251
|
+
@classmethod
|
|
252
|
+
def new(
|
|
253
|
+
cls,
|
|
254
|
+
identifier_type: IdentifierType,
|
|
255
|
+
identifier_value: IdentifierValueType,
|
|
256
|
+
type: ResourceOperationStatusUpdateType,
|
|
257
|
+
) -> "StatusUpdateParameter":
|
|
258
|
+
return cls(
|
|
259
|
+
identifier=OrganizationRelationIdentifier(
|
|
260
|
+
type=identifier_type, value=identifier_value
|
|
261
|
+
),
|
|
262
|
+
type=type,
|
|
263
|
+
)
|
|
173
264
|
|
|
174
265
|
|
|
175
|
-
class DeleteSingleParameter(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
266
|
+
class DeleteSingleParameter(BaseDeleteSingleParameter[OrganizationRelationIdentifier]):
|
|
267
|
+
@overload
|
|
268
|
+
@classmethod
|
|
269
|
+
def new(
|
|
270
|
+
cls, identifier_type: Literal[IdentifierType.ID], identifier_value: int
|
|
271
|
+
) -> "DeleteSingleParameter": ...
|
|
272
|
+
@overload
|
|
273
|
+
@classmethod
|
|
274
|
+
def new(
|
|
275
|
+
cls, identifier_type: Literal[IdentifierType.UUID], identifier_value: UUID
|
|
276
|
+
) -> "DeleteSingleParameter": ...
|
|
277
|
+
@overload
|
|
278
|
+
@classmethod
|
|
279
|
+
def new(
|
|
280
|
+
cls,
|
|
281
|
+
identifier_type: Literal[IdentifierType.COMPOSITE],
|
|
282
|
+
identifier_value: CompositeIdentifier,
|
|
283
|
+
) -> "DeleteSingleParameter": ...
|
|
284
|
+
@overload
|
|
285
|
+
@classmethod
|
|
286
|
+
def new(
|
|
287
|
+
cls, identifier_type: IdentifierType, identifier_value: IdentifierValueType
|
|
288
|
+
) -> "DeleteSingleParameter": ...
|
|
289
|
+
@classmethod
|
|
290
|
+
def new(
|
|
291
|
+
cls, identifier_type: IdentifierType, identifier_value: IdentifierValueType
|
|
292
|
+
) -> "DeleteSingleParameter":
|
|
293
|
+
return cls(
|
|
294
|
+
identifier=OrganizationRelationIdentifier(
|
|
295
|
+
type=identifier_type, value=identifier_value
|
|
296
|
+
)
|
|
297
|
+
)
|
|
@@ -23,7 +23,7 @@ from maleo.enums.status import (
|
|
|
23
23
|
)
|
|
24
24
|
from maleo.schemas.mixins.filter import convert as convert_filter
|
|
25
25
|
from maleo.schemas.mixins.identity import (
|
|
26
|
-
|
|
26
|
+
IdentifierMixin,
|
|
27
27
|
Ids,
|
|
28
28
|
UUIDs,
|
|
29
29
|
FullNames,
|
|
@@ -32,6 +32,7 @@ from maleo.schemas.mixins.identity import (
|
|
|
32
32
|
IntOrganizationIds,
|
|
33
33
|
)
|
|
34
34
|
from maleo.schemas.mixins.sort import convert as convert_sort
|
|
35
|
+
from maleo.schemas.operation.enums import ResourceOperationStatusUpdateType
|
|
35
36
|
from maleo.schemas.parameter import (
|
|
36
37
|
ReadSingleParameter as BaseReadSingleParameter,
|
|
37
38
|
ReadPaginatedMultipleParameter,
|
|
@@ -45,7 +46,7 @@ from maleo.types.string import OptStr, OptListOfStrs
|
|
|
45
46
|
from maleo.types.uuid import OptListOfUUIDs
|
|
46
47
|
from ..enums.patient import IdentifierType
|
|
47
48
|
from ..mixins.common import IdCard, FullName, PlaceOfBirth
|
|
48
|
-
from ..mixins.patient import PatientIdentifier
|
|
49
|
+
from ..mixins.patient import PatientIdentity, PatientIdentifier
|
|
49
50
|
from ..types.patient import IdentifierValueType
|
|
50
51
|
|
|
51
52
|
|
|
@@ -56,7 +57,7 @@ class StandardCreateData(
|
|
|
56
57
|
DateOfBirth[date],
|
|
57
58
|
PlaceOfBirth[OptStr],
|
|
58
59
|
FullName[str],
|
|
59
|
-
|
|
60
|
+
PatientIdentity,
|
|
60
61
|
):
|
|
61
62
|
pass
|
|
62
63
|
|
|
@@ -109,7 +110,7 @@ class ReadMultipleParameter(
|
|
|
109
110
|
return params
|
|
110
111
|
|
|
111
112
|
|
|
112
|
-
class ReadSingleParameter(BaseReadSingleParameter[
|
|
113
|
+
class ReadSingleParameter(BaseReadSingleParameter[PatientIdentifier]):
|
|
113
114
|
@overload
|
|
114
115
|
@classmethod
|
|
115
116
|
def new(
|
|
@@ -146,8 +147,10 @@ class ReadSingleParameter(BaseReadSingleParameter[IdentifierType, IdentifierValu
|
|
|
146
147
|
use_cache: bool = True,
|
|
147
148
|
) -> "ReadSingleParameter":
|
|
148
149
|
return cls(
|
|
149
|
-
|
|
150
|
-
|
|
150
|
+
identifier=PatientIdentifier(
|
|
151
|
+
type=identifier_type,
|
|
152
|
+
value=identifier_value,
|
|
153
|
+
),
|
|
151
154
|
statuses=statuses,
|
|
152
155
|
use_cache=use_cache,
|
|
153
156
|
)
|
|
@@ -165,7 +168,7 @@ class FullUpdateData(
|
|
|
165
168
|
DateOfBirth[date],
|
|
166
169
|
PlaceOfBirth[OptStr],
|
|
167
170
|
FullName[str],
|
|
168
|
-
|
|
171
|
+
PatientIdentity,
|
|
169
172
|
IdCard[OptStr],
|
|
170
173
|
):
|
|
171
174
|
pass
|
|
@@ -178,7 +181,7 @@ class PartialUpdateData(
|
|
|
178
181
|
DateOfBirth[OptDate],
|
|
179
182
|
PlaceOfBirth[OptStr],
|
|
180
183
|
FullName[OptStr],
|
|
181
|
-
|
|
184
|
+
PatientIdentity,
|
|
182
185
|
IdCard[OptStr],
|
|
183
186
|
):
|
|
184
187
|
pass
|
|
@@ -193,22 +196,129 @@ class UpdateDataMixin(BaseModel, Generic[UpdateDataT]):
|
|
|
193
196
|
|
|
194
197
|
class UpdateParameter(
|
|
195
198
|
UpdateDataMixin[UpdateDataT],
|
|
196
|
-
|
|
197
|
-
IdentifierType,
|
|
198
|
-
IdentifierValueType,
|
|
199
|
-
],
|
|
199
|
+
IdentifierMixin[PatientIdentifier],
|
|
200
200
|
Generic[UpdateDataT],
|
|
201
201
|
):
|
|
202
|
-
|
|
202
|
+
@overload
|
|
203
|
+
@classmethod
|
|
204
|
+
def new(
|
|
205
|
+
cls,
|
|
206
|
+
identifier_type: Literal[IdentifierType.ID],
|
|
207
|
+
identifier_value: int,
|
|
208
|
+
data: UpdateDataT,
|
|
209
|
+
) -> "UpdateParameter": ...
|
|
210
|
+
@overload
|
|
211
|
+
@classmethod
|
|
212
|
+
def new(
|
|
213
|
+
cls,
|
|
214
|
+
identifier_type: Literal[IdentifierType.UUID],
|
|
215
|
+
identifier_value: UUID,
|
|
216
|
+
data: UpdateDataT,
|
|
217
|
+
) -> "UpdateParameter": ...
|
|
218
|
+
@overload
|
|
219
|
+
@classmethod
|
|
220
|
+
def new(
|
|
221
|
+
cls,
|
|
222
|
+
identifier_type: Literal[IdentifierType.ID_CARD, IdentifierType.PASSPORT],
|
|
223
|
+
identifier_value: str,
|
|
224
|
+
data: UpdateDataT,
|
|
225
|
+
) -> "UpdateParameter": ...
|
|
226
|
+
@overload
|
|
227
|
+
@classmethod
|
|
228
|
+
def new(
|
|
229
|
+
cls,
|
|
230
|
+
identifier_type: IdentifierType,
|
|
231
|
+
identifier_value: IdentifierValueType,
|
|
232
|
+
data: UpdateDataT,
|
|
233
|
+
) -> "UpdateParameter": ...
|
|
234
|
+
@classmethod
|
|
235
|
+
def new(
|
|
236
|
+
cls,
|
|
237
|
+
identifier_type: IdentifierType,
|
|
238
|
+
identifier_value: IdentifierValueType,
|
|
239
|
+
data: UpdateDataT,
|
|
240
|
+
) -> "UpdateParameter":
|
|
241
|
+
return cls(
|
|
242
|
+
identifier=PatientIdentifier(type=identifier_type, value=identifier_value),
|
|
243
|
+
data=data,
|
|
244
|
+
)
|
|
203
245
|
|
|
204
246
|
|
|
205
247
|
class StatusUpdateParameter(
|
|
206
|
-
BaseStatusUpdateParameter[
|
|
248
|
+
BaseStatusUpdateParameter[PatientIdentifier],
|
|
207
249
|
):
|
|
208
|
-
|
|
250
|
+
@overload
|
|
251
|
+
@classmethod
|
|
252
|
+
def new(
|
|
253
|
+
cls,
|
|
254
|
+
identifier_type: Literal[IdentifierType.ID],
|
|
255
|
+
identifier_value: int,
|
|
256
|
+
type: ResourceOperationStatusUpdateType,
|
|
257
|
+
) -> "StatusUpdateParameter": ...
|
|
258
|
+
@overload
|
|
259
|
+
@classmethod
|
|
260
|
+
def new(
|
|
261
|
+
cls,
|
|
262
|
+
identifier_type: Literal[IdentifierType.UUID],
|
|
263
|
+
identifier_value: UUID,
|
|
264
|
+
type: ResourceOperationStatusUpdateType,
|
|
265
|
+
) -> "StatusUpdateParameter": ...
|
|
266
|
+
@overload
|
|
267
|
+
@classmethod
|
|
268
|
+
def new(
|
|
269
|
+
cls,
|
|
270
|
+
identifier_type: Literal[IdentifierType.ID_CARD, IdentifierType.PASSPORT],
|
|
271
|
+
identifier_value: str,
|
|
272
|
+
type: ResourceOperationStatusUpdateType,
|
|
273
|
+
) -> "StatusUpdateParameter": ...
|
|
274
|
+
@overload
|
|
275
|
+
@classmethod
|
|
276
|
+
def new(
|
|
277
|
+
cls,
|
|
278
|
+
identifier_type: IdentifierType,
|
|
279
|
+
identifier_value: IdentifierValueType,
|
|
280
|
+
type: ResourceOperationStatusUpdateType,
|
|
281
|
+
) -> "StatusUpdateParameter": ...
|
|
282
|
+
@classmethod
|
|
283
|
+
def new(
|
|
284
|
+
cls,
|
|
285
|
+
identifier_type: IdentifierType,
|
|
286
|
+
identifier_value: IdentifierValueType,
|
|
287
|
+
type: ResourceOperationStatusUpdateType,
|
|
288
|
+
) -> "StatusUpdateParameter":
|
|
289
|
+
return cls(
|
|
290
|
+
identifier=PatientIdentifier(type=identifier_type, value=identifier_value),
|
|
291
|
+
type=type,
|
|
292
|
+
)
|
|
209
293
|
|
|
210
294
|
|
|
211
|
-
class DeleteSingleParameter(
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
295
|
+
class DeleteSingleParameter(BaseDeleteSingleParameter[PatientIdentifier]):
|
|
296
|
+
@overload
|
|
297
|
+
@classmethod
|
|
298
|
+
def new(
|
|
299
|
+
cls, identifier_type: Literal[IdentifierType.ID], identifier_value: int
|
|
300
|
+
) -> "DeleteSingleParameter": ...
|
|
301
|
+
@overload
|
|
302
|
+
@classmethod
|
|
303
|
+
def new(
|
|
304
|
+
cls, identifier_type: Literal[IdentifierType.UUID], identifier_value: UUID
|
|
305
|
+
) -> "DeleteSingleParameter": ...
|
|
306
|
+
@overload
|
|
307
|
+
@classmethod
|
|
308
|
+
def new(
|
|
309
|
+
cls,
|
|
310
|
+
identifier_type: Literal[IdentifierType.ID_CARD, IdentifierType.PASSPORT],
|
|
311
|
+
identifier_value: str,
|
|
312
|
+
) -> "DeleteSingleParameter": ...
|
|
313
|
+
@overload
|
|
314
|
+
@classmethod
|
|
315
|
+
def new(
|
|
316
|
+
cls, identifier_type: IdentifierType, identifier_value: IdentifierValueType
|
|
317
|
+
) -> "DeleteSingleParameter": ...
|
|
318
|
+
@classmethod
|
|
319
|
+
def new(
|
|
320
|
+
cls, identifier_type: IdentifierType, identifier_value: IdentifierValueType
|
|
321
|
+
) -> "DeleteSingleParameter":
|
|
322
|
+
return cls(
|
|
323
|
+
identifier=PatientIdentifier(type=identifier_type, value=identifier_value)
|
|
324
|
+
)
|
maleo/identity/schemas/user.py
CHANGED
|
@@ -14,12 +14,13 @@ from maleo.enums.user import (
|
|
|
14
14
|
)
|
|
15
15
|
from maleo.schemas.mixins.filter import convert as convert_filter
|
|
16
16
|
from maleo.schemas.mixins.identity import (
|
|
17
|
-
|
|
17
|
+
IdentifierMixin,
|
|
18
18
|
Ids,
|
|
19
19
|
UUIDs,
|
|
20
20
|
IntOrganizationIds,
|
|
21
21
|
)
|
|
22
22
|
from maleo.schemas.mixins.sort import convert as convert_sort
|
|
23
|
+
from maleo.schemas.operation.enums import ResourceOperationStatusUpdateType
|
|
23
24
|
from maleo.schemas.parameter import (
|
|
24
25
|
ReadSingleParameter as BaseReadSingleParameter,
|
|
25
26
|
ReadPaginatedMultipleParameter,
|
|
@@ -38,6 +39,7 @@ from ..mixins.user import (
|
|
|
38
39
|
Emails,
|
|
39
40
|
Phone,
|
|
40
41
|
Phones,
|
|
42
|
+
UserIdentifier,
|
|
41
43
|
)
|
|
42
44
|
from ..types.user import IdentifierValueType
|
|
43
45
|
|
|
@@ -85,7 +87,7 @@ class ReadMultipleParameter(
|
|
|
85
87
|
return params
|
|
86
88
|
|
|
87
89
|
|
|
88
|
-
class ReadSingleParameter(BaseReadSingleParameter[
|
|
90
|
+
class ReadSingleParameter(BaseReadSingleParameter[UserIdentifier]):
|
|
89
91
|
@overload
|
|
90
92
|
@classmethod
|
|
91
93
|
def new(
|
|
@@ -122,8 +124,10 @@ class ReadSingleParameter(BaseReadSingleParameter[IdentifierType, IdentifierValu
|
|
|
122
124
|
use_cache: bool = True,
|
|
123
125
|
) -> "ReadSingleParameter":
|
|
124
126
|
return cls(
|
|
125
|
-
|
|
126
|
-
|
|
127
|
+
identifier=UserIdentifier(
|
|
128
|
+
type=identifier_type,
|
|
129
|
+
value=identifier_value,
|
|
130
|
+
),
|
|
127
131
|
statuses=statuses,
|
|
128
132
|
use_cache=use_cache,
|
|
129
133
|
)
|
|
@@ -163,22 +167,129 @@ class UpdateDataMixin(BaseModel, Generic[UpdateDataT]):
|
|
|
163
167
|
|
|
164
168
|
class UpdateParameter(
|
|
165
169
|
UpdateDataMixin[UpdateDataT],
|
|
166
|
-
|
|
167
|
-
IdentifierType,
|
|
168
|
-
IdentifierValueType,
|
|
169
|
-
],
|
|
170
|
+
IdentifierMixin[UserIdentifier],
|
|
170
171
|
Generic[UpdateDataT],
|
|
171
172
|
):
|
|
172
|
-
|
|
173
|
+
@overload
|
|
174
|
+
@classmethod
|
|
175
|
+
def new(
|
|
176
|
+
cls,
|
|
177
|
+
identifier_type: Literal[IdentifierType.ID],
|
|
178
|
+
identifier_value: int,
|
|
179
|
+
data: UpdateDataT,
|
|
180
|
+
) -> "UpdateParameter": ...
|
|
181
|
+
@overload
|
|
182
|
+
@classmethod
|
|
183
|
+
def new(
|
|
184
|
+
cls,
|
|
185
|
+
identifier_type: Literal[IdentifierType.UUID],
|
|
186
|
+
identifier_value: UUID,
|
|
187
|
+
data: UpdateDataT,
|
|
188
|
+
) -> "UpdateParameter": ...
|
|
189
|
+
@overload
|
|
190
|
+
@classmethod
|
|
191
|
+
def new(
|
|
192
|
+
cls,
|
|
193
|
+
identifier_type: Literal[IdentifierType.USERNAME, IdentifierType.EMAIL],
|
|
194
|
+
identifier_value: str,
|
|
195
|
+
data: UpdateDataT,
|
|
196
|
+
) -> "UpdateParameter": ...
|
|
197
|
+
@overload
|
|
198
|
+
@classmethod
|
|
199
|
+
def new(
|
|
200
|
+
cls,
|
|
201
|
+
identifier_type: IdentifierType,
|
|
202
|
+
identifier_value: IdentifierValueType,
|
|
203
|
+
data: UpdateDataT,
|
|
204
|
+
) -> "UpdateParameter": ...
|
|
205
|
+
@classmethod
|
|
206
|
+
def new(
|
|
207
|
+
cls,
|
|
208
|
+
identifier_type: IdentifierType,
|
|
209
|
+
identifier_value: IdentifierValueType,
|
|
210
|
+
data: UpdateDataT,
|
|
211
|
+
) -> "UpdateParameter":
|
|
212
|
+
return cls(
|
|
213
|
+
identifier=UserIdentifier(type=identifier_type, value=identifier_value),
|
|
214
|
+
data=data,
|
|
215
|
+
)
|
|
173
216
|
|
|
174
217
|
|
|
175
218
|
class StatusUpdateParameter(
|
|
176
|
-
BaseStatusUpdateParameter[
|
|
219
|
+
BaseStatusUpdateParameter[UserIdentifier],
|
|
177
220
|
):
|
|
178
|
-
|
|
221
|
+
@overload
|
|
222
|
+
@classmethod
|
|
223
|
+
def new(
|
|
224
|
+
cls,
|
|
225
|
+
identifier_type: Literal[IdentifierType.ID],
|
|
226
|
+
identifier_value: int,
|
|
227
|
+
type: ResourceOperationStatusUpdateType,
|
|
228
|
+
) -> "StatusUpdateParameter": ...
|
|
229
|
+
@overload
|
|
230
|
+
@classmethod
|
|
231
|
+
def new(
|
|
232
|
+
cls,
|
|
233
|
+
identifier_type: Literal[IdentifierType.UUID],
|
|
234
|
+
identifier_value: UUID,
|
|
235
|
+
type: ResourceOperationStatusUpdateType,
|
|
236
|
+
) -> "StatusUpdateParameter": ...
|
|
237
|
+
@overload
|
|
238
|
+
@classmethod
|
|
239
|
+
def new(
|
|
240
|
+
cls,
|
|
241
|
+
identifier_type: Literal[IdentifierType.USERNAME, IdentifierType.EMAIL],
|
|
242
|
+
identifier_value: str,
|
|
243
|
+
type: ResourceOperationStatusUpdateType,
|
|
244
|
+
) -> "StatusUpdateParameter": ...
|
|
245
|
+
@overload
|
|
246
|
+
@classmethod
|
|
247
|
+
def new(
|
|
248
|
+
cls,
|
|
249
|
+
identifier_type: IdentifierType,
|
|
250
|
+
identifier_value: IdentifierValueType,
|
|
251
|
+
type: ResourceOperationStatusUpdateType,
|
|
252
|
+
) -> "StatusUpdateParameter": ...
|
|
253
|
+
@classmethod
|
|
254
|
+
def new(
|
|
255
|
+
cls,
|
|
256
|
+
identifier_type: IdentifierType,
|
|
257
|
+
identifier_value: IdentifierValueType,
|
|
258
|
+
type: ResourceOperationStatusUpdateType,
|
|
259
|
+
) -> "StatusUpdateParameter":
|
|
260
|
+
return cls(
|
|
261
|
+
identifier=UserIdentifier(type=identifier_type, value=identifier_value),
|
|
262
|
+
type=type,
|
|
263
|
+
)
|
|
179
264
|
|
|
180
265
|
|
|
181
|
-
class DeleteSingleParameter(
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
266
|
+
class DeleteSingleParameter(BaseDeleteSingleParameter[UserIdentifier]):
|
|
267
|
+
@overload
|
|
268
|
+
@classmethod
|
|
269
|
+
def new(
|
|
270
|
+
cls, identifier_type: Literal[IdentifierType.ID], identifier_value: int
|
|
271
|
+
) -> "DeleteSingleParameter": ...
|
|
272
|
+
@overload
|
|
273
|
+
@classmethod
|
|
274
|
+
def new(
|
|
275
|
+
cls, identifier_type: Literal[IdentifierType.UUID], identifier_value: UUID
|
|
276
|
+
) -> "DeleteSingleParameter": ...
|
|
277
|
+
@overload
|
|
278
|
+
@classmethod
|
|
279
|
+
def new(
|
|
280
|
+
cls,
|
|
281
|
+
identifier_type: Literal[IdentifierType.USERNAME, IdentifierType.EMAIL],
|
|
282
|
+
identifier_value: str,
|
|
283
|
+
) -> "DeleteSingleParameter": ...
|
|
284
|
+
@overload
|
|
285
|
+
@classmethod
|
|
286
|
+
def new(
|
|
287
|
+
cls, identifier_type: IdentifierType, identifier_value: IdentifierValueType
|
|
288
|
+
) -> "DeleteSingleParameter": ...
|
|
289
|
+
@classmethod
|
|
290
|
+
def new(
|
|
291
|
+
cls, identifier_type: IdentifierType, identifier_value: IdentifierValueType
|
|
292
|
+
) -> "DeleteSingleParameter":
|
|
293
|
+
return cls(
|
|
294
|
+
identifier=UserIdentifier(type=identifier_type, value=identifier_value)
|
|
295
|
+
)
|