Skip to content

Commit f0debce

Browse files
committed
feat(project): get api apps
1 parent 8b7973e commit f0debce

4 files changed

Lines changed: 91 additions & 33 deletions

File tree

libsimba/auth/client_credentials.py

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,12 @@ def __init__(self, do_init: bool = True):
5050
self.registry[pc.provider()] = pc
5151

5252
def do_login(
53-
self,
54-
client_id: str,
55-
auth_provider: Optional[AuthProviderName] = None
53+
self, client_id: str, auth_provider: Optional[AuthProviderName] = None
5654
) -> Tuple[Optional[AuthToken], AuthProvider]:
5755
provider_name = auth_provider or settings().AUTH_PROVIDER
5856
provider = self.registry.get(provider_name)
5957
if not provider:
60-
raise ValueError(
61-
f"No provider found for provider type: {provider}"
62-
)
58+
raise ValueError(f"No provider found for provider type: {provider}")
6359
token = self.get_cached_token(client_id=client_id)
6460
return token, provider
6561

@@ -73,7 +69,9 @@ def login_sync(
7369
config: ConnectionConfig = None,
7470
) -> Optional[AuthToken]:
7571
if not headers.get(self.header):
76-
token, provider = self.do_login(client_id=login.client_id, auth_provider=login.provider)
72+
token, provider = self.do_login(
73+
client_id=login.client_id, auth_provider=login.provider
74+
)
7775
if not token:
7876
token = provider.login_sync(
7977
login=login,
@@ -91,7 +89,9 @@ async def login(
9189
config: ConnectionConfig = None,
9290
) -> Optional[AuthToken]:
9391
if not headers.get(self.header):
94-
token, provider = self.do_login(client_id=login.client_id, auth_provider=login.provider)
92+
token, provider = self.do_login(
93+
client_id=login.client_id, auth_provider=login.provider
94+
)
9595
if not token:
9696
token = await provider.login(
9797
login=login,
@@ -260,7 +260,8 @@ async def login_sync(
260260
"token": resp["access_token"],
261261
"type": resp["token_type"],
262262
"expires": (
263-
datetime.now(tz=timezone.utc) + timedelta(seconds=int(resp["expires_in"]))
263+
datetime.now(tz=timezone.utc)
264+
+ timedelta(seconds=int(resp["expires_in"]))
264265
),
265266
}
266267
return AuthToken(**data)
@@ -296,7 +297,8 @@ async def login(
296297
"token": resp["access_token"],
297298
"type": resp["token_type"],
298299
"expires": (
299-
datetime.now(tz=timezone.utc) + timedelta(seconds=int(resp["expires_in"]))
300+
datetime.now(tz=timezone.utc)
301+
+ timedelta(seconds=int(resp["expires_in"]))
300302
),
301303
}
302304
return AuthToken(**data)
@@ -334,7 +336,8 @@ async def login(
334336
"token": resp["access_token"],
335337
"type": resp["token_type"],
336338
"expires": (
337-
datetime.now(tz=timezone.utc) + timedelta(seconds=int(resp["expires_in"]))
339+
datetime.now(tz=timezone.utc)
340+
+ timedelta(seconds=int(resp["expires_in"]))
338341
),
339342
}
340343
return AuthToken(**data)
@@ -363,7 +366,8 @@ def login_sync(
363366
"token": resp["access_token"],
364367
"type": resp["token_type"],
365368
"expires": (
366-
datetime.now(tz=timezone.utc) + timedelta(seconds=int(resp["expires_in"]))
369+
datetime.now(tz=timezone.utc)
370+
+ timedelta(seconds=int(resp["expires_in"]))
367371
),
368372
}
369373
return AuthToken(**data)
@@ -390,7 +394,7 @@ async def login(
390394
data = {
391395
"grant_type": "client_credentials",
392396
"client_id": login.client_id,
393-
"client_secret": login.client_secret
397+
"client_secret": login.client_secret,
394398
}
395399
async with async_http_client(config=config) as client:
396400
token_response = await client.post(
@@ -406,7 +410,9 @@ async def login(
406410
}
407411
return AuthToken(**data)
408412
except Exception as e:
409-
logger.warning("[PlatformAuthProvider] :: Error fetching token: {}".format(e))
413+
logger.warning(
414+
"[PlatformAuthProvider] :: Error fetching token: {}".format(e)
415+
)
410416
raise e
411417

412418
def login_sync(
@@ -419,7 +425,7 @@ def login_sync(
419425
data = {
420426
"grant_type": "client_credentials",
421427
"client_id": login.client_id,
422-
"client_secret": login.client_secret
428+
"client_secret": login.client_secret,
423429
}
424430
with http_client(config=config) as client:
425431
token_response = client.post(
@@ -435,5 +441,7 @@ def login_sync(
435441
}
436442
return AuthToken(**data)
437443
except Exception as e:
438-
logger.warning("[PlatformAuthProvider] :: Error fetching token: {}".format(e))
444+
logger.warning(
445+
"[PlatformAuthProvider] :: Error fetching token: {}".format(e)
446+
)
439447
raise e

libsimba/simba.py

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,7 +1095,11 @@ async def admin_get_accounts(
10951095
)
10961096
if owner_identifier:
10971097
params.add_filter(
1098-
FieldFilter(field="owner_identifier", op=FilterOp.EQ, value=owner_identifier)
1098+
FieldFilter(
1099+
field="owner_identifier",
1100+
op=FilterOp.EQ,
1101+
value=owner_identifier,
1102+
)
10991103
)
11001104
if alias:
11011105
params.add_filter(
@@ -1384,6 +1388,30 @@ async def create_secret(
13841388
login=login,
13851389
).send(config=config, json_payload=payload, headers=headers or {})
13861390

1391+
async def get_secrets(
1392+
self,
1393+
headers: Optional[dict] = None,
1394+
login: Login = None,
1395+
config: ConnectionConfig = None,
1396+
) -> List[dict]:
1397+
"""
1398+
GET ``/user/api_applications/``
1399+
1400+
Get user secrets.
1401+
1402+
:Keyword Arguments:
1403+
* **headers** (`Optional[dict]`) - additional http headers
1404+
* **login** (`Optional[Login]`)
1405+
* **config** (`Optional[ConnectionConfig]`)
1406+
:return: client secrets
1407+
:rtype: list
1408+
"""
1409+
return await SimbaRequest(
1410+
method="POST",
1411+
endpoint=Path.USER_SECRET,
1412+
login=login,
1413+
).retrieve(config=config, headers=headers or {})
1414+
13871415
async def admin_set_delegate(
13881416
self,
13891417
user: str,
@@ -1451,13 +1479,10 @@ async def admin_create_account(
14511479
"""
14521480

14531481
payload = {
1454-
"network": network,
1455-
"nickname": alias,
1456-
"alias": alias,
1457-
"owner": {
1458-
"type": owner_type,
1459-
"identifier": owner
1460-
}
1482+
"network": network,
1483+
"nickname": alias,
1484+
"alias": alias,
1485+
"owner": {"type": owner_type, "identifier": owner},
14611486
}
14621487
return await SimbaRequest(
14631488
method="POST",

libsimba/simba_sync.py

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2217,7 +2217,11 @@ def admin_get_accounts(
22172217
)
22182218
if owner_identifier:
22192219
params.add_filter(
2220-
FieldFilter(field="owner_identifier", op=FilterOp.EQ, value=owner_identifier)
2220+
FieldFilter(
2221+
field="owner_identifier",
2222+
op=FilterOp.EQ,
2223+
value=owner_identifier,
2224+
)
22212225
)
22222226
if alias:
22232227
params.add_filter(
@@ -2706,6 +2710,30 @@ def create_secret(
27062710
login=login,
27072711
).send_sync(config=config, json_payload=payload, headers=headers or {})
27082712

2713+
def get_secrets(
2714+
self,
2715+
headers: Optional[dict] = None,
2716+
login: Login = None,
2717+
config: ConnectionConfig = None,
2718+
) -> List[dict]:
2719+
"""
2720+
GET ``/user/api_applications/``
2721+
2722+
Get user secrets.
2723+
2724+
:Keyword Arguments:
2725+
* **headers** (`Optional[dict]`) - additional http headers
2726+
* **login** (`Optional[Login]`)
2727+
* **config** (`Optional[ConnectionConfig]`)
2728+
:return: client secrets
2729+
:rtype: list
2730+
"""
2731+
return SimbaRequest(
2732+
method="POST",
2733+
endpoint=Path.USER_SECRET,
2734+
login=login,
2735+
).retrieve_sync(config=config, headers=headers or {})
2736+
27092737
def admin_set_delegate(
27102738
self,
27112739
user: str,
@@ -2773,13 +2801,10 @@ def admin_create_account(
27732801
"""
27742802

27752803
payload = {
2776-
"network": network,
2777-
"nickname": alias,
2778-
"alias": alias,
2779-
"owner": {
2780-
"type": owner_type,
2781-
"identifier": owner
2782-
}
2804+
"network": network,
2805+
"nickname": alias,
2806+
"alias": alias,
2807+
"owner": {"type": owner_type, "identifier": owner},
27832808
}
27842809
return SimbaRequest(
27852810
method="POST",

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "libsimba"
3-
version = "1.4.10"
3+
version = "1.4.11"
44
description = "libsimba is a library simplifying the use of SIMBAChain Blocks APIs."
55
authors = [
66
"SIMBA Chain Inc."

0 commit comments

Comments
 (0)