maleo-identity 0.0.1__tar.gz
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-0.0.1/PKG-INFO +39 -0
- maleo_identity-0.0.1/README.md +29 -0
- maleo_identity-0.0.1/maleo_identity/__init__.py +0 -0
- maleo_identity-0.0.1/maleo_identity/client/__init__.py +0 -0
- maleo_identity-0.0.1/maleo_identity/client/controllers/__init__.py +15 -0
- maleo_identity-0.0.1/maleo_identity/client/controllers/http/__init__.py +0 -0
- maleo_identity-0.0.1/maleo_identity/client/controllers/http/organization.py +76 -0
- maleo_identity-0.0.1/maleo_identity/client/controllers/http/user.py +76 -0
- maleo_identity-0.0.1/maleo_identity/client/manager.py +56 -0
- maleo_identity-0.0.1/maleo_identity/client/services/__init__.py +9 -0
- maleo_identity-0.0.1/maleo_identity/client/services/organization.py +148 -0
- maleo_identity-0.0.1/maleo_identity/client/services/user.py +148 -0
- maleo_identity-0.0.1/maleo_identity/constants/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/constants/organization.py +13 -0
- maleo_identity-0.0.1/maleo_identity/constants/user.py +34 -0
- maleo_identity-0.0.1/maleo_identity/constants/user_organization.py +31 -0
- maleo_identity-0.0.1/maleo_identity/constants/user_profile.py +11 -0
- maleo_identity-0.0.1/maleo_identity/constants/user_system_role.py +20 -0
- maleo_identity-0.0.1/maleo_identity/db.py +6 -0
- maleo_identity-0.0.1/maleo_identity/enums/__init__.py +15 -0
- maleo_identity-0.0.1/maleo_identity/enums/general.py +5 -0
- maleo_identity-0.0.1/maleo_identity/enums/organization.py +10 -0
- maleo_identity-0.0.1/maleo_identity/enums/user.py +15 -0
- maleo_identity-0.0.1/maleo_identity/enums/user_organization.py +8 -0
- maleo_identity-0.0.1/maleo_identity/enums/user_profile.py +10 -0
- maleo_identity-0.0.1/maleo_identity/enums/user_system_role.py +7 -0
- maleo_identity-0.0.1/maleo_identity/models/__init__.py +9 -0
- maleo_identity-0.0.1/maleo_identity/models/responses/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/responses/organization.py +46 -0
- maleo_identity-0.0.1/maleo_identity/models/responses/user.py +46 -0
- maleo_identity-0.0.1/maleo_identity/models/responses/user_organization.py +25 -0
- maleo_identity-0.0.1/maleo_identity/models/responses/user_profile.py +46 -0
- maleo_identity-0.0.1/maleo_identity/models/responses/user_system_role.py +25 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/__init__.py +9 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/general/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/general/organization.py +24 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/general/user.py +22 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/general/user_organization.py +20 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/general/user_profile.py +44 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/general/user_system_role.py +14 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/parameters/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/parameters/organization.py +10 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/parameters/user.py +15 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/parameters/user_organization.py +7 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/parameters/user_profile.py +22 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/parameters/user_system_role.py +8 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/results/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/results/organization.py +18 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/results/user.py +18 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/results/user_organization.py +7 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/results/user_profile.py +34 -0
- maleo_identity-0.0.1/maleo_identity/models/schemas/results/user_system_role.py +8 -0
- maleo_identity-0.0.1/maleo_identity/models/tables/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/tables/organization.py +18 -0
- maleo_identity-0.0.1/maleo_identity/models/tables/user.py +17 -0
- maleo_identity-0.0.1/maleo_identity/models/tables/user_organization.py +10 -0
- maleo_identity-0.0.1/maleo_identity/models/tables/user_profile.py +21 -0
- maleo_identity-0.0.1/maleo_identity/models/tables/user_system_role.py +15 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/__init__.py +9 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/general/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/general/organization.py +24 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/general/user.py +16 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/general/user_organization.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/general/user_profile.py +14 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/general/user_system_role.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/__init__.py +9 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/client/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/client/organization.py +19 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/client/user.py +23 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/client/user_organization.py +32 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/client/user_profile.py +22 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/client/user_system_role.py +26 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/general/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/general/organization.py +30 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/general/user.py +35 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/general/user_organization.py +31 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/general/user_profile.py +35 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/general/user_system_role.py +25 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/service/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/service/organization.py +19 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/service/user.py +23 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/service/user_organization.py +30 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/service/user_profile.py +22 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/parameters/service/user_system_role.py +25 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/__init__.py +7 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/general/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/general/organization.py +15 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/general/user.py +15 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/general/user_organization.py +15 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/general/user_profile.py +15 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/general/user_system_role.py +15 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/query/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/query/organization.py +19 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/query/user.py +19 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/query/user_organization.py +19 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/query/user_profile.py +19 -0
- maleo_identity-0.0.1/maleo_identity/models/transfers/results/query/user_system_role.py +19 -0
- maleo_identity-0.0.1/maleo_identity/types/__init__.py +5 -0
- maleo_identity-0.0.1/maleo_identity/types/results/__init__.py +7 -0
- maleo_identity-0.0.1/maleo_identity/types/results/general/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/types/results/general/organization.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/general/user.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/general/user_organization.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/general/user_profile.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/general/user_system_role.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/query/__init__.py +13 -0
- maleo_identity-0.0.1/maleo_identity/types/results/query/organization.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/query/user.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/query/user_organization.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/query/user_profile.py +20 -0
- maleo_identity-0.0.1/maleo_identity/types/results/query/user_system_role.py +20 -0
- maleo_identity-0.0.1/maleo_identity.egg-info/PKG-INFO +39 -0
- maleo_identity-0.0.1/maleo_identity.egg-info/SOURCES.txt +116 -0
- maleo_identity-0.0.1/maleo_identity.egg-info/dependency_links.txt +1 -0
- maleo_identity-0.0.1/maleo_identity.egg-info/requires.txt +1 -0
- maleo_identity-0.0.1/maleo_identity.egg-info/top_level.txt +1 -0
- maleo_identity-0.0.1/pyproject.toml +28 -0
- maleo_identity-0.0.1/setup.cfg +4 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: maleo-identity
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: MaleoIdentity service package
|
|
5
|
+
Author-email: Agra Bima Yuda <agra@nexmedis.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.7
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: maleo_foundation>=0.1.82
|
|
10
|
+
|
|
11
|
+
# README #
|
|
12
|
+
|
|
13
|
+
This README would normally document whatever steps are necessary to get your application up and running.
|
|
14
|
+
|
|
15
|
+
### What is this repository for? ###
|
|
16
|
+
|
|
17
|
+
* Quick summary
|
|
18
|
+
* Version
|
|
19
|
+
* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
|
|
20
|
+
|
|
21
|
+
### How do I get set up? ###
|
|
22
|
+
|
|
23
|
+
* Summary of set up
|
|
24
|
+
* Configuration
|
|
25
|
+
* Dependencies
|
|
26
|
+
* Database configuration
|
|
27
|
+
* How to run tests
|
|
28
|
+
* Deployment instructions
|
|
29
|
+
|
|
30
|
+
### Contribution guidelines ###
|
|
31
|
+
|
|
32
|
+
* Writing tests
|
|
33
|
+
* Code review
|
|
34
|
+
* Other guidelines
|
|
35
|
+
|
|
36
|
+
### Who do I talk to? ###
|
|
37
|
+
|
|
38
|
+
* Repo owner or admin
|
|
39
|
+
* Other community or team contact
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# README #
|
|
2
|
+
|
|
3
|
+
This README would normally document whatever steps are necessary to get your application up and running.
|
|
4
|
+
|
|
5
|
+
### What is this repository for? ###
|
|
6
|
+
|
|
7
|
+
* Quick summary
|
|
8
|
+
* Version
|
|
9
|
+
* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
|
|
10
|
+
|
|
11
|
+
### How do I get set up? ###
|
|
12
|
+
|
|
13
|
+
* Summary of set up
|
|
14
|
+
* Configuration
|
|
15
|
+
* Dependencies
|
|
16
|
+
* Database configuration
|
|
17
|
+
* How to run tests
|
|
18
|
+
* Deployment instructions
|
|
19
|
+
|
|
20
|
+
### Contribution guidelines ###
|
|
21
|
+
|
|
22
|
+
* Writing tests
|
|
23
|
+
* Code review
|
|
24
|
+
* Other guidelines
|
|
25
|
+
|
|
26
|
+
### Who do I talk to? ###
|
|
27
|
+
|
|
28
|
+
* Repo owner or admin
|
|
29
|
+
* Other community or team contact
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from pydantic import Field
|
|
3
|
+
from maleo_foundation.managers.client.base import ClientServiceControllers, ClientControllers
|
|
4
|
+
|
|
5
|
+
from maleo_identity.client.controllers.http.organization import MaleoIdentityOrganizationHTTPController
|
|
6
|
+
class MaleoIdentityOrganizationControllers(ClientServiceControllers):
|
|
7
|
+
http:MaleoIdentityOrganizationHTTPController = Field(..., description="Organization's http controller")
|
|
8
|
+
|
|
9
|
+
from maleo_identity.client.controllers.http.user import MaleoIdentityUserHTTPController
|
|
10
|
+
class MaleoIdentityUserControllers(ClientServiceControllers):
|
|
11
|
+
http:MaleoIdentityUserHTTPController = Field(..., description="User's http controller")
|
|
12
|
+
|
|
13
|
+
class MaleoIdentityControllers(ClientControllers):
|
|
14
|
+
organization:MaleoIdentityOrganizationControllers = Field(..., description="Organization's controllers")
|
|
15
|
+
user:MaleoIdentityUserControllers = Field(..., description="User's controllers")
|
|
File without changes
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
from maleo_foundation.managers.client.base import BearerAuth
|
|
2
|
+
from maleo_foundation.managers.client.maleo import MaleoClientHTTPController
|
|
3
|
+
from maleo_foundation.models.transfers.results.client.controllers.http import BaseClientHTTPControllerResults
|
|
4
|
+
from maleo_identity.models.transfers.parameters.general.organization import MaleoIdentityOrganizationGeneralParametersTransfers
|
|
5
|
+
from maleo_identity.models.transfers.parameters.client.organization import MaleoIdentityOrganizationClientParametersTransfers
|
|
6
|
+
|
|
7
|
+
class MaleoIdentityOrganizationHTTPController(MaleoClientHTTPController):
|
|
8
|
+
async def get_organizations(self, parameters:MaleoIdentityOrganizationClientParametersTransfers.GetMultiple) -> BaseClientHTTPControllerResults:
|
|
9
|
+
"""Fetch organizations from MaleoIdentity"""
|
|
10
|
+
async with self._manager.get_client() as client:
|
|
11
|
+
#* Define URL
|
|
12
|
+
url = f"{self._manager.url.api}/v1/organizations/"
|
|
13
|
+
|
|
14
|
+
#* Parse parameters to query params
|
|
15
|
+
params = MaleoIdentityOrganizationClientParametersTransfers.GetMultipleQuery.model_validate(parameters.model_dump()).model_dump(exclude={"sort_columns", "date_filters"}, exclude_none=True)
|
|
16
|
+
|
|
17
|
+
#* Create auth
|
|
18
|
+
auth = BearerAuth(token=self._service_manager.token)
|
|
19
|
+
|
|
20
|
+
#* Send request and wait for response
|
|
21
|
+
response = await client.get(url=url, params=params, auth=auth)
|
|
22
|
+
return BaseClientHTTPControllerResults(response=response)
|
|
23
|
+
|
|
24
|
+
async def get_organization(self, parameters:MaleoIdentityOrganizationGeneralParametersTransfers.GetSingle) -> BaseClientHTTPControllerResults:
|
|
25
|
+
"""Fetch organization from MaleoIdentity"""
|
|
26
|
+
async with self._manager.get_client() as client:
|
|
27
|
+
#* Define URL
|
|
28
|
+
url = f"{self._manager.url.api}/v1/organizations/{parameters.identifier}/{parameters.value}"
|
|
29
|
+
|
|
30
|
+
#* Parse parameters to query params
|
|
31
|
+
params = MaleoIdentityOrganizationGeneralParametersTransfers.GetSingleQuery.model_validate(parameters.model_dump()).model_dump(exclude_none=True)
|
|
32
|
+
|
|
33
|
+
#* Create auth
|
|
34
|
+
auth = BearerAuth(token=self._service_manager.token)
|
|
35
|
+
|
|
36
|
+
#* Send request and wait for response
|
|
37
|
+
response = await client.get(url=url, params=params, auth=auth)
|
|
38
|
+
return BaseClientHTTPControllerResults(response=response)
|
|
39
|
+
|
|
40
|
+
async def create(self, parameters:MaleoIdentityOrganizationGeneralParametersTransfers.Create) -> BaseClientHTTPControllerResults:
|
|
41
|
+
"""Create a new organization in MaleoIdentity"""
|
|
42
|
+
async with self._manager.get_client() as client:
|
|
43
|
+
#* Define URL
|
|
44
|
+
url = f"{self._manager.url.api}/v1/organizations/"
|
|
45
|
+
|
|
46
|
+
#* Declare body
|
|
47
|
+
json = MaleoIdentityOrganizationGeneralParametersTransfers.CreateOrUpdateData.model_validate(parameters.model_dump()).model_dump()
|
|
48
|
+
|
|
49
|
+
#* Parse parameters to query params
|
|
50
|
+
params = MaleoIdentityOrganizationGeneralParametersTransfers.CreateOrUpdateQuery.model_validate(parameters.model_dump()).model_dump(exclude_none=True)
|
|
51
|
+
|
|
52
|
+
#* Create auth
|
|
53
|
+
auth = BearerAuth(token=self._service_manager.token)
|
|
54
|
+
|
|
55
|
+
#* Send request and wait for response
|
|
56
|
+
response = await client.post(url=url, json=json, params=params, auth=auth)
|
|
57
|
+
return BaseClientHTTPControllerResults(response=response)
|
|
58
|
+
|
|
59
|
+
async def update(self, parameters:MaleoIdentityOrganizationGeneralParametersTransfers.Update) -> BaseClientHTTPControllerResults:
|
|
60
|
+
"""Update organization's data in MaleoIdentity"""
|
|
61
|
+
async with self._manager.get_client() as client:
|
|
62
|
+
#* Define URL
|
|
63
|
+
url = f"{self._manager.url.api}/v1/organizations/{parameters.identifier}/{parameters.value}"
|
|
64
|
+
|
|
65
|
+
#* Declare body
|
|
66
|
+
json = MaleoIdentityOrganizationGeneralParametersTransfers.CreateOrUpdateData.model_validate(parameters.model_dump()).model_dump()
|
|
67
|
+
|
|
68
|
+
#* Parse parameters to query params
|
|
69
|
+
params = MaleoIdentityOrganizationGeneralParametersTransfers.CreateOrUpdateQuery.model_validate(parameters.model_dump()).model_dump(exclude_none=True)
|
|
70
|
+
|
|
71
|
+
#* Create auth
|
|
72
|
+
auth = BearerAuth(token=self._service_manager.token)
|
|
73
|
+
|
|
74
|
+
#* Send request and wait for response
|
|
75
|
+
response = await client.put(url=url, json=json, params=params, auth=auth)
|
|
76
|
+
return BaseClientHTTPControllerResults(response=response)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
from maleo_foundation.managers.client.base import BearerAuth
|
|
2
|
+
from maleo_foundation.managers.client.maleo import MaleoClientHTTPController
|
|
3
|
+
from maleo_foundation.models.transfers.results.client.controllers.http import BaseClientHTTPControllerResults
|
|
4
|
+
from maleo_identity.models.transfers.parameters.general.user import MaleoIdentityUserGeneralParametersTransfers
|
|
5
|
+
from maleo_identity.models.transfers.parameters.client.user import MaleoIdentityUserClientParametersTransfers
|
|
6
|
+
|
|
7
|
+
class MaleoIdentityUserHTTPController(MaleoClientHTTPController):
|
|
8
|
+
async def get_users(self, parameters:MaleoIdentityUserClientParametersTransfers.GetMultiple) -> BaseClientHTTPControllerResults:
|
|
9
|
+
"""Fetch users from MaleoIdentity"""
|
|
10
|
+
async with self._manager.get_client() as client:
|
|
11
|
+
#* Define URL
|
|
12
|
+
url = f"{self._manager.url.api}/v1/users/"
|
|
13
|
+
|
|
14
|
+
#* Parse parameters to query params
|
|
15
|
+
params = MaleoIdentityUserClientParametersTransfers.GetMultipleQuery.model_validate(parameters.model_dump()).model_dump(exclude={"sort_columns", "date_filters"}, exclude_none=True)
|
|
16
|
+
|
|
17
|
+
#* Create auth
|
|
18
|
+
auth = BearerAuth(token=self._service_manager.token)
|
|
19
|
+
|
|
20
|
+
#* Send request and wait for response
|
|
21
|
+
response = await client.get(url=url, params=params, auth=auth)
|
|
22
|
+
return BaseClientHTTPControllerResults(response=response)
|
|
23
|
+
|
|
24
|
+
async def get_user(self, parameters:MaleoIdentityUserGeneralParametersTransfers.GetSingle) -> BaseClientHTTPControllerResults:
|
|
25
|
+
"""Fetch user from MaleoIdentity"""
|
|
26
|
+
async with self._manager.get_client() as client:
|
|
27
|
+
#* Define URL
|
|
28
|
+
url = f"{self._manager.url.api}/v1/users/{parameters.identifier}/{parameters.value}"
|
|
29
|
+
|
|
30
|
+
#* Parse parameters to query params
|
|
31
|
+
params = MaleoIdentityUserGeneralParametersTransfers.GetSingleQuery.model_validate(parameters.model_dump()).model_dump(exclude_none=True)
|
|
32
|
+
|
|
33
|
+
#* Create auth
|
|
34
|
+
auth = BearerAuth(token=self._service_manager.token)
|
|
35
|
+
|
|
36
|
+
#* Send request and wait for response
|
|
37
|
+
response = await client.get(url=url, params=params, auth=auth)
|
|
38
|
+
return BaseClientHTTPControllerResults(response=response)
|
|
39
|
+
|
|
40
|
+
async def create(self, parameters:MaleoIdentityUserGeneralParametersTransfers.Create) -> BaseClientHTTPControllerResults:
|
|
41
|
+
"""Create a new user in MaleoIdentity"""
|
|
42
|
+
async with self._manager.get_client() as client:
|
|
43
|
+
#* Define URL
|
|
44
|
+
url = f"{self._manager.url.api}/v1/users/"
|
|
45
|
+
|
|
46
|
+
#* Declare body
|
|
47
|
+
json = MaleoIdentityUserGeneralParametersTransfers.CreateData.model_validate(parameters.model_dump()).model_dump()
|
|
48
|
+
|
|
49
|
+
#* Parse parameters to query params
|
|
50
|
+
params = MaleoIdentityUserGeneralParametersTransfers.CreateOrUpdateQuery.model_validate(parameters.model_dump()).model_dump(exclude_none=True)
|
|
51
|
+
|
|
52
|
+
#* Create auth
|
|
53
|
+
auth = BearerAuth(token=self._service_manager.token)
|
|
54
|
+
|
|
55
|
+
#* Send request and wait for response
|
|
56
|
+
response = await client.post(url=url, json=json, params=params, auth=auth)
|
|
57
|
+
return BaseClientHTTPControllerResults(response=response)
|
|
58
|
+
|
|
59
|
+
async def update(self, parameters:MaleoIdentityUserGeneralParametersTransfers.Update) -> BaseClientHTTPControllerResults:
|
|
60
|
+
"""Update user's data in MaleoIdentity"""
|
|
61
|
+
async with self._manager.get_client() as client:
|
|
62
|
+
#* Define URL
|
|
63
|
+
url = f"{self._manager.url.api}/v1/users/{parameters.identifier}/{parameters.value}"
|
|
64
|
+
|
|
65
|
+
#* Declare body
|
|
66
|
+
json = MaleoIdentityUserGeneralParametersTransfers.UpdateData.model_validate(parameters.model_dump()).model_dump()
|
|
67
|
+
|
|
68
|
+
#* Parse parameters to query params
|
|
69
|
+
params = MaleoIdentityUserGeneralParametersTransfers.CreateOrUpdateQuery.model_validate(parameters.model_dump()).model_dump(exclude_none=True)
|
|
70
|
+
|
|
71
|
+
#* Create auth
|
|
72
|
+
auth = BearerAuth(token=self._service_manager.token)
|
|
73
|
+
|
|
74
|
+
#* Send request and wait for response
|
|
75
|
+
response = await client.put(url=url, json=json, params=params, auth=auth)
|
|
76
|
+
return BaseClientHTTPControllerResults(response=response)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from maleo_foundation.managers.client.maleo import MaleoClientManager
|
|
3
|
+
from maleo_foundation.managers.service import ServiceManager
|
|
4
|
+
from maleo_identity.client.controllers.http.organization import MaleoIdentityOrganizationHTTPController
|
|
5
|
+
from maleo_identity.client.controllers.http.user import MaleoIdentityUserHTTPController
|
|
6
|
+
from maleo_identity.client.controllers import (
|
|
7
|
+
MaleoIdentityOrganizationControllers,
|
|
8
|
+
MaleoIdentityUserControllers,
|
|
9
|
+
MaleoIdentityControllers
|
|
10
|
+
)
|
|
11
|
+
from maleo_identity.client.services import (
|
|
12
|
+
MaleoIdentityOrganizationClientService,
|
|
13
|
+
MaleoIdentityUserClientService,
|
|
14
|
+
MaleoIdentityServices
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
class MaleoIdentityClientManager(MaleoClientManager):
|
|
18
|
+
def __init__(self, service_manager:ServiceManager):
|
|
19
|
+
key = service_manager.configs.client.maleo.identity.key
|
|
20
|
+
name = service_manager.configs.client.maleo.identity.name
|
|
21
|
+
url = service_manager.configs.client.maleo.identity.url
|
|
22
|
+
super().__init__(key, name, url, service_manager)
|
|
23
|
+
self._initialize_controllers()
|
|
24
|
+
self._initialize_services()
|
|
25
|
+
self._logger.info("Client manager initialized successfully")
|
|
26
|
+
|
|
27
|
+
def _initialize_controllers(self):
|
|
28
|
+
super()._initialize_controllers()
|
|
29
|
+
#* Organization controllers
|
|
30
|
+
organization_http_controller = MaleoIdentityOrganizationHTTPController(service_manager=self.service_manager, manager=self._controller_managers.http)
|
|
31
|
+
organization_controllers = MaleoIdentityOrganizationControllers(http=organization_http_controller)
|
|
32
|
+
#* User controllers
|
|
33
|
+
user_http_controller = MaleoIdentityUserHTTPController(service_manager=self.service_manager, manager=self._controller_managers.http)
|
|
34
|
+
user_controllers = MaleoIdentityUserControllers(http=user_http_controller)
|
|
35
|
+
#* All controllers
|
|
36
|
+
self._controllers = MaleoIdentityControllers(
|
|
37
|
+
organization=organization_controllers,
|
|
38
|
+
user=user_controllers
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
@property
|
|
42
|
+
def controllers(self) -> MaleoIdentityControllers:
|
|
43
|
+
return self._controllers
|
|
44
|
+
|
|
45
|
+
def _initialize_services(self):
|
|
46
|
+
super()._initialize_services()
|
|
47
|
+
organization_service = MaleoIdentityOrganizationClientService(logger=self._logger, controllers=self._controllers.organization)
|
|
48
|
+
user_service = MaleoIdentityUserClientService(logger=self._logger, controllers=self._controllers.user)
|
|
49
|
+
self._services = MaleoIdentityServices(
|
|
50
|
+
organization=organization_service,
|
|
51
|
+
user=user_service
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
@property
|
|
55
|
+
def services(self) -> MaleoIdentityServices:
|
|
56
|
+
return self._services
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from pydantic import Field
|
|
3
|
+
from maleo_foundation.managers.client.base import ClientServices
|
|
4
|
+
from maleo_identity.client.services.organization import MaleoIdentityOrganizationClientService
|
|
5
|
+
from maleo_identity.client.services.user import MaleoIdentityUserClientService
|
|
6
|
+
|
|
7
|
+
class MaleoIdentityServices(ClientServices):
|
|
8
|
+
organization:MaleoIdentityOrganizationClientService = Field(..., description="Organization's service")
|
|
9
|
+
user:MaleoIdentityUserClientService = Field(..., description="User's service")
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
from fastapi import status
|
|
2
|
+
from maleo_foundation.managers.client.base import ClientService
|
|
3
|
+
from maleo_foundation.utils.exceptions import BaseExceptions
|
|
4
|
+
from maleo_identity.client.controllers import MaleoIdentityOrganizationControllers
|
|
5
|
+
from maleo_identity.enums.general import MaleoIdentityGeneralEnums
|
|
6
|
+
from maleo_identity.models.transfers.parameters.general.organization import MaleoIdentityOrganizationGeneralParametersTransfers
|
|
7
|
+
from maleo_identity.models.transfers.parameters.client.organization import MaleoIdentityOrganizationClientParametersTransfers
|
|
8
|
+
from maleo_identity.models.transfers.results.general.organization import MaleoIdentityOrganizationGeneralResultsTransfers
|
|
9
|
+
from maleo_identity.types.results.general.organization import MaleoIdentityOrganizationGeneralResultsTypes
|
|
10
|
+
|
|
11
|
+
class MaleoIdentityOrganizationClientService(ClientService):
|
|
12
|
+
def __init__(self, logger, controllers:MaleoIdentityOrganizationControllers):
|
|
13
|
+
super().__init__(logger)
|
|
14
|
+
self._controllers = controllers
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def controllers(self) -> MaleoIdentityOrganizationControllers:
|
|
18
|
+
raise self._controllers
|
|
19
|
+
|
|
20
|
+
async def get_organizations(
|
|
21
|
+
self,
|
|
22
|
+
parameters:MaleoIdentityOrganizationClientParametersTransfers.GetMultiple,
|
|
23
|
+
controller_type:MaleoIdentityGeneralEnums.ClientControllerType = MaleoIdentityGeneralEnums.ClientControllerType.HTTP
|
|
24
|
+
) -> MaleoIdentityOrganizationGeneralResultsTypes.GetMultiple:
|
|
25
|
+
"""Retrieve organizations from MaleoIdentity"""
|
|
26
|
+
@BaseExceptions.service_exception_handler(
|
|
27
|
+
operation="retrieving organizations",
|
|
28
|
+
logger=self._logger,
|
|
29
|
+
fail_result_class=MaleoIdentityOrganizationGeneralResultsTransfers.Fail
|
|
30
|
+
)
|
|
31
|
+
async def _impl():
|
|
32
|
+
#* Validate chosen controller type
|
|
33
|
+
if not isinstance(controller_type, MaleoIdentityGeneralEnums.ClientControllerType):
|
|
34
|
+
message = "Invalid controller type"
|
|
35
|
+
description = "The provided controller type did not exists"
|
|
36
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail(message=message, description=description)
|
|
37
|
+
#* Retrieve organizations using chosen controller
|
|
38
|
+
if controller_type == MaleoIdentityGeneralEnums.ClientControllerType.HTTP:
|
|
39
|
+
controller_result = await self._controllers.http.get_organizations(parameters=parameters)
|
|
40
|
+
else:
|
|
41
|
+
message = "Invalid controller type"
|
|
42
|
+
description = "The provided controller type has not been implemented"
|
|
43
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail(message=message, description=description)
|
|
44
|
+
#* Return proper response
|
|
45
|
+
if not controller_result.success:
|
|
46
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail.model_validate(controller_result.content)
|
|
47
|
+
else:
|
|
48
|
+
if controller_result.content["data"] is None:
|
|
49
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.NoData.model_validate(controller_result.content)
|
|
50
|
+
else:
|
|
51
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.MultipleData.model_validate(controller_result.content)
|
|
52
|
+
return await _impl()
|
|
53
|
+
|
|
54
|
+
async def get_organization(
|
|
55
|
+
self,
|
|
56
|
+
parameters:MaleoIdentityOrganizationGeneralParametersTransfers.GetSingle,
|
|
57
|
+
controller_type:MaleoIdentityGeneralEnums.ClientControllerType = MaleoIdentityGeneralEnums.ClientControllerType.HTTP
|
|
58
|
+
) -> MaleoIdentityOrganizationGeneralResultsTypes.GetSingle:
|
|
59
|
+
"""Retrieve organization from MaleoIdentity"""
|
|
60
|
+
@BaseExceptions.service_exception_handler(
|
|
61
|
+
operation="retrieving organization",
|
|
62
|
+
logger=self._logger,
|
|
63
|
+
fail_result_class=MaleoIdentityOrganizationGeneralResultsTransfers.Fail
|
|
64
|
+
)
|
|
65
|
+
async def _impl():
|
|
66
|
+
#* Validate chosen controller type
|
|
67
|
+
if not isinstance(controller_type, MaleoIdentityGeneralEnums.ClientControllerType):
|
|
68
|
+
message = "Invalid controller type"
|
|
69
|
+
description = "The provided controller type did not exists"
|
|
70
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail(message=message, description=description)
|
|
71
|
+
#* Retrieve organization using chosen controller
|
|
72
|
+
if controller_type == MaleoIdentityGeneralEnums.ClientControllerType.HTTP:
|
|
73
|
+
controller_result = await self._controllers.http.get_organization(parameters=parameters)
|
|
74
|
+
else:
|
|
75
|
+
message = "Invalid controller type"
|
|
76
|
+
description = "The provided controller type has not been implemented"
|
|
77
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail(message=message, description=description)
|
|
78
|
+
#* Return proper response
|
|
79
|
+
if not controller_result.success:
|
|
80
|
+
if controller_result.status_code != status.HTTP_404_NOT_FOUND:
|
|
81
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail.model_validate(controller_result.content)
|
|
82
|
+
else:
|
|
83
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.NoData.model_validate(controller_result.content)
|
|
84
|
+
else:
|
|
85
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.SingleData.model_validate(controller_result.content)
|
|
86
|
+
return await _impl()
|
|
87
|
+
|
|
88
|
+
async def create(
|
|
89
|
+
self,
|
|
90
|
+
parameters:MaleoIdentityOrganizationGeneralParametersTransfers.Create,
|
|
91
|
+
controller_type:MaleoIdentityGeneralEnums.ClientControllerType = MaleoIdentityGeneralEnums.ClientControllerType.HTTP
|
|
92
|
+
) -> MaleoIdentityOrganizationGeneralResultsTypes.CreateOrUpdate:
|
|
93
|
+
"""Create a new organization in MaleoIdentity"""
|
|
94
|
+
@BaseExceptions.service_exception_handler(
|
|
95
|
+
operation="creating a new organization",
|
|
96
|
+
logger=self._logger,
|
|
97
|
+
fail_result_class=MaleoIdentityOrganizationGeneralResultsTransfers.Fail
|
|
98
|
+
)
|
|
99
|
+
async def _impl():
|
|
100
|
+
#* Validate chosen controller type
|
|
101
|
+
if not isinstance(controller_type, MaleoIdentityGeneralEnums.ClientControllerType):
|
|
102
|
+
message = "Invalid controller type"
|
|
103
|
+
description = "The provided controller type did not exists"
|
|
104
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail(message=message, description=description)
|
|
105
|
+
#* Create a new organization using chosen controller
|
|
106
|
+
if controller_type == MaleoIdentityGeneralEnums.ClientControllerType.HTTP:
|
|
107
|
+
controller_result = await self._controllers.http.create(parameters=parameters)
|
|
108
|
+
else:
|
|
109
|
+
message = "Invalid controller type"
|
|
110
|
+
description = "The provided controller type has not been implemented"
|
|
111
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail(message=message, description=description)
|
|
112
|
+
#* Return proper response
|
|
113
|
+
if not controller_result.success:
|
|
114
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.NoData.model_validate(controller_result.content)
|
|
115
|
+
else:
|
|
116
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.SingleData.model_validate(controller_result.content)
|
|
117
|
+
return await _impl()
|
|
118
|
+
|
|
119
|
+
async def update(
|
|
120
|
+
self,
|
|
121
|
+
parameters:MaleoIdentityOrganizationGeneralParametersTransfers.Update,
|
|
122
|
+
controller_type:MaleoIdentityGeneralEnums.ClientControllerType = MaleoIdentityGeneralEnums.ClientControllerType.HTTP
|
|
123
|
+
) -> MaleoIdentityOrganizationGeneralResultsTypes.CreateOrUpdate:
|
|
124
|
+
"""Update organization's data in MaleoIdentity"""
|
|
125
|
+
@BaseExceptions.service_exception_handler(
|
|
126
|
+
operation="updating organization's data",
|
|
127
|
+
logger=self._logger,
|
|
128
|
+
fail_result_class=MaleoIdentityOrganizationGeneralResultsTransfers.Fail
|
|
129
|
+
)
|
|
130
|
+
async def _impl():
|
|
131
|
+
#* Validate chosen controller type
|
|
132
|
+
if not isinstance(controller_type, MaleoIdentityGeneralEnums.ClientControllerType):
|
|
133
|
+
message = "Invalid controller type"
|
|
134
|
+
description = "The provided controller type did not exists"
|
|
135
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail(message=message, description=description)
|
|
136
|
+
#* Update organization's data using chosen controller
|
|
137
|
+
if controller_type == MaleoIdentityGeneralEnums.ClientControllerType.HTTP:
|
|
138
|
+
controller_result = await self._controllers.http.update(parameters=parameters)
|
|
139
|
+
else:
|
|
140
|
+
message = "Invalid controller type"
|
|
141
|
+
description = "The provided controller type has not been implemented"
|
|
142
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.Fail(message=message, description=description)
|
|
143
|
+
#* Return proper response
|
|
144
|
+
if not controller_result.success:
|
|
145
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.NoData.model_validate(controller_result.content)
|
|
146
|
+
else:
|
|
147
|
+
return MaleoIdentityOrganizationGeneralResultsTransfers.SingleData.model_validate(controller_result.content)
|
|
148
|
+
return await _impl()
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
from fastapi import status
|
|
2
|
+
from maleo_foundation.managers.client.base import ClientService
|
|
3
|
+
from maleo_foundation.utils.exceptions import BaseExceptions
|
|
4
|
+
from maleo_identity.client.controllers import MaleoIdentityUserControllers
|
|
5
|
+
from maleo_identity.enums.general import MaleoIdentityGeneralEnums
|
|
6
|
+
from maleo_identity.models.transfers.parameters.general.user import MaleoIdentityUserGeneralParametersTransfers
|
|
7
|
+
from maleo_identity.models.transfers.parameters.client.user import MaleoIdentityUserClientParametersTransfers
|
|
8
|
+
from maleo_identity.models.transfers.results.general.user import MaleoIdentityUserGeneralResultsTransfers
|
|
9
|
+
from maleo_identity.types.results.general.user import MaleoIdentityUserGeneralResultsTypes
|
|
10
|
+
|
|
11
|
+
class MaleoIdentityUserClientService(ClientService):
|
|
12
|
+
def __init__(self, logger, controllers:MaleoIdentityUserControllers):
|
|
13
|
+
super().__init__(logger)
|
|
14
|
+
self._controllers = controllers
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def controllers(self) -> MaleoIdentityUserControllers:
|
|
18
|
+
raise self._controllers
|
|
19
|
+
|
|
20
|
+
async def get_users(
|
|
21
|
+
self,
|
|
22
|
+
parameters:MaleoIdentityUserClientParametersTransfers.GetMultiple,
|
|
23
|
+
controller_type:MaleoIdentityGeneralEnums.ClientControllerType = MaleoIdentityGeneralEnums.ClientControllerType.HTTP
|
|
24
|
+
) -> MaleoIdentityUserGeneralResultsTypes.GetMultiple:
|
|
25
|
+
"""Retrieve users from MaleoIdentity"""
|
|
26
|
+
@BaseExceptions.service_exception_handler(
|
|
27
|
+
operation="retrieving users",
|
|
28
|
+
logger=self._logger,
|
|
29
|
+
fail_result_class=MaleoIdentityUserGeneralResultsTransfers.Fail
|
|
30
|
+
)
|
|
31
|
+
async def _impl():
|
|
32
|
+
#* Validate chosen controller type
|
|
33
|
+
if not isinstance(controller_type, MaleoIdentityGeneralEnums.ClientControllerType):
|
|
34
|
+
message = "Invalid controller type"
|
|
35
|
+
description = "The provided controller type did not exists"
|
|
36
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail(message=message, description=description)
|
|
37
|
+
#* Retrieve users using chosen controller
|
|
38
|
+
if controller_type == MaleoIdentityGeneralEnums.ClientControllerType.HTTP:
|
|
39
|
+
controller_result = await self._controllers.http.get_users(parameters=parameters)
|
|
40
|
+
else:
|
|
41
|
+
message = "Invalid controller type"
|
|
42
|
+
description = "The provided controller type has not been implemented"
|
|
43
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail(message=message, description=description)
|
|
44
|
+
#* Return proper response
|
|
45
|
+
if not controller_result.success:
|
|
46
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail.model_validate(controller_result.content)
|
|
47
|
+
else:
|
|
48
|
+
if controller_result.content["data"] is None:
|
|
49
|
+
return MaleoIdentityUserGeneralResultsTransfers.NoData.model_validate(controller_result.content)
|
|
50
|
+
else:
|
|
51
|
+
return MaleoIdentityUserGeneralResultsTransfers.MultipleData.model_validate(controller_result.content)
|
|
52
|
+
return await _impl()
|
|
53
|
+
|
|
54
|
+
async def get_user(
|
|
55
|
+
self,
|
|
56
|
+
parameters:MaleoIdentityUserGeneralParametersTransfers.GetSingle,
|
|
57
|
+
controller_type:MaleoIdentityGeneralEnums.ClientControllerType = MaleoIdentityGeneralEnums.ClientControllerType.HTTP
|
|
58
|
+
) -> MaleoIdentityUserGeneralResultsTypes.GetSingle:
|
|
59
|
+
"""Retrieve user from MaleoIdentity"""
|
|
60
|
+
@BaseExceptions.service_exception_handler(
|
|
61
|
+
operation="retrieving user",
|
|
62
|
+
logger=self._logger,
|
|
63
|
+
fail_result_class=MaleoIdentityUserGeneralResultsTransfers.Fail
|
|
64
|
+
)
|
|
65
|
+
async def _impl():
|
|
66
|
+
#* Validate chosen controller type
|
|
67
|
+
if not isinstance(controller_type, MaleoIdentityGeneralEnums.ClientControllerType):
|
|
68
|
+
message = "Invalid controller type"
|
|
69
|
+
description = "The provided controller type did not exists"
|
|
70
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail(message=message, description=description)
|
|
71
|
+
#* Retrieve user using chosen controller
|
|
72
|
+
if controller_type == MaleoIdentityGeneralEnums.ClientControllerType.HTTP:
|
|
73
|
+
controller_result = await self._controllers.http.get_user(parameters=parameters)
|
|
74
|
+
else:
|
|
75
|
+
message = "Invalid controller type"
|
|
76
|
+
description = "The provided controller type has not been implemented"
|
|
77
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail(message=message, description=description)
|
|
78
|
+
#* Return proper response
|
|
79
|
+
if not controller_result.success:
|
|
80
|
+
if controller_result.status_code != status.HTTP_404_NOT_FOUND:
|
|
81
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail.model_validate(controller_result.content)
|
|
82
|
+
else:
|
|
83
|
+
return MaleoIdentityUserGeneralResultsTransfers.NoData.model_validate(controller_result.content)
|
|
84
|
+
else:
|
|
85
|
+
return MaleoIdentityUserGeneralResultsTransfers.SingleData.model_validate(controller_result.content)
|
|
86
|
+
return await _impl()
|
|
87
|
+
|
|
88
|
+
async def create(
|
|
89
|
+
self,
|
|
90
|
+
parameters:MaleoIdentityUserGeneralParametersTransfers.Create,
|
|
91
|
+
controller_type:MaleoIdentityGeneralEnums.ClientControllerType = MaleoIdentityGeneralEnums.ClientControllerType.HTTP
|
|
92
|
+
) -> MaleoIdentityUserGeneralResultsTypes.CreateOrUpdate:
|
|
93
|
+
"""Create a new user in MaleoIdentity"""
|
|
94
|
+
@BaseExceptions.service_exception_handler(
|
|
95
|
+
operation="creating a new user",
|
|
96
|
+
logger=self._logger,
|
|
97
|
+
fail_result_class=MaleoIdentityUserGeneralResultsTransfers.Fail
|
|
98
|
+
)
|
|
99
|
+
async def _impl():
|
|
100
|
+
#* Validate chosen controller type
|
|
101
|
+
if not isinstance(controller_type, MaleoIdentityGeneralEnums.ClientControllerType):
|
|
102
|
+
message = "Invalid controller type"
|
|
103
|
+
description = "The provided controller type did not exists"
|
|
104
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail(message=message, description=description)
|
|
105
|
+
#* Create a new user using chosen controller
|
|
106
|
+
if controller_type == MaleoIdentityGeneralEnums.ClientControllerType.HTTP:
|
|
107
|
+
controller_result = await self._controllers.http.create(parameters=parameters)
|
|
108
|
+
else:
|
|
109
|
+
message = "Invalid controller type"
|
|
110
|
+
description = "The provided controller type has not been implemented"
|
|
111
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail(message=message, description=description)
|
|
112
|
+
#* Return proper response
|
|
113
|
+
if not controller_result.success:
|
|
114
|
+
return MaleoIdentityUserGeneralResultsTransfers.NoData.model_validate(controller_result.content)
|
|
115
|
+
else:
|
|
116
|
+
return MaleoIdentityUserGeneralResultsTransfers.SingleData.model_validate(controller_result.content)
|
|
117
|
+
return await _impl()
|
|
118
|
+
|
|
119
|
+
async def update(
|
|
120
|
+
self,
|
|
121
|
+
parameters:MaleoIdentityUserGeneralParametersTransfers.Update,
|
|
122
|
+
controller_type:MaleoIdentityGeneralEnums.ClientControllerType = MaleoIdentityGeneralEnums.ClientControllerType.HTTP
|
|
123
|
+
) -> MaleoIdentityUserGeneralResultsTypes.CreateOrUpdate:
|
|
124
|
+
"""Update user's data in MaleoIdentity"""
|
|
125
|
+
@BaseExceptions.service_exception_handler(
|
|
126
|
+
operation="updating user's data",
|
|
127
|
+
logger=self._logger,
|
|
128
|
+
fail_result_class=MaleoIdentityUserGeneralResultsTransfers.Fail
|
|
129
|
+
)
|
|
130
|
+
async def _impl():
|
|
131
|
+
#* Validate chosen controller type
|
|
132
|
+
if not isinstance(controller_type, MaleoIdentityGeneralEnums.ClientControllerType):
|
|
133
|
+
message = "Invalid controller type"
|
|
134
|
+
description = "The provided controller type did not exists"
|
|
135
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail(message=message, description=description)
|
|
136
|
+
#* Update user's data using chosen controller
|
|
137
|
+
if controller_type == MaleoIdentityGeneralEnums.ClientControllerType.HTTP:
|
|
138
|
+
controller_result = await self._controllers.http.update(parameters=parameters)
|
|
139
|
+
else:
|
|
140
|
+
message = "Invalid controller type"
|
|
141
|
+
description = "The provided controller type has not been implemented"
|
|
142
|
+
return MaleoIdentityUserGeneralResultsTransfers.Fail(message=message, description=description)
|
|
143
|
+
#* Return proper response
|
|
144
|
+
if not controller_result.success:
|
|
145
|
+
return MaleoIdentityUserGeneralResultsTransfers.NoData.model_validate(controller_result.content)
|
|
146
|
+
else:
|
|
147
|
+
return MaleoIdentityUserGeneralResultsTransfers.SingleData.model_validate(controller_result.content)
|
|
148
|
+
return await _impl()
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from .organization import MaleoIdentityOrganizationConstants
|
|
3
|
+
from .user import MaleoIdentityUserConstants
|
|
4
|
+
from .user_profile import MaleoIdentityUserProfileConstants
|
|
5
|
+
from .user_system_role import MaleoIdentityUserSystemRoleConstants
|
|
6
|
+
from .user_organization import MaleoIdentityUserOrganizationConstants
|
|
7
|
+
|
|
8
|
+
class MaleoIdentityConstants:
|
|
9
|
+
Organization = MaleoIdentityOrganizationConstants
|
|
10
|
+
User = MaleoIdentityUserConstants
|
|
11
|
+
UserProfile = MaleoIdentityUserProfileConstants
|
|
12
|
+
UserSystemRole = MaleoIdentityUserSystemRoleConstants
|
|
13
|
+
UserOrganization = MaleoIdentityUserOrganizationConstants
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from typing import Dict
|
|
2
|
+
from uuid import UUID
|
|
3
|
+
from maleo_identity.enums.organization import MaleoIdentityOrganizationEnums
|
|
4
|
+
|
|
5
|
+
class MaleoIdentityOrganizationConstants:
|
|
6
|
+
IDENTIFIER_TYPE_VALUE_TYPE_MAP:Dict[
|
|
7
|
+
MaleoIdentityOrganizationEnums.IdentifierType,
|
|
8
|
+
object
|
|
9
|
+
] = {
|
|
10
|
+
MaleoIdentityOrganizationEnums.IdentifierType.ID: int,
|
|
11
|
+
MaleoIdentityOrganizationEnums.IdentifierType.UUID: UUID,
|
|
12
|
+
MaleoIdentityOrganizationEnums.IdentifierType.KEY: str
|
|
13
|
+
}
|