Skip to content

Commit 784e98d

Browse files
committed
Default to APIM, include accounts fallback.
1 parent add185f commit 784e98d

File tree

2 files changed

+49
-6
lines changed

2 files changed

+49
-6
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "recnetpy"
7-
version = "0.1.5"
7+
version = "0.1.51"
88
authors = [
99
{ name="RecNetBot Development"}
1010
]

src/recnetpy/managers/account_manager.py

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,16 @@ async def get(self, name: str) -> Optional['Account']:
2020
:param name: The username of the RecNet user.
2121
:return: An account object representing the data or nothing if not found.
2222
"""
23+
data: 'Response[AccountResponse]' = await self.rec_net.apim.accounts.account.make_request('get', params = {'username': str(name)})
24+
if data.success and data.data: return self.create_dataclass(data.data['accountId'], data.data)
25+
26+
# If APIM gets deprecated, fall back to accounts host
27+
print("APIM deprecated! File an issue on my repository. Check your input beforehand.")
2328
data: 'Response[AccountResponse]' = await self.rec_net.accounts.account.make_request('get', params = {'username': str(name)})
24-
if data.data: return self.create_dataclass(data.data['accountId'], data.data)
29+
if data.success and data.data: return self.create_dataclass(data.data['accountId'], data.data)
30+
31+
# No luck
32+
print("APIM and Accounts deprecated! File an issue on my repository. Check your input beforehand.")
2533
return None
2634

2735
async def fetch(self, id: int) -> Optional['Account']:
@@ -32,8 +40,16 @@ async def fetch(self, id: int) -> Optional['Account']:
3240
:param id: The id of the RecNet user.
3341
:return: An account object representing the data or nothing if not found.
3442
"""
43+
data: 'Response[AccountResponse]' = await self.rec_net.apim.accounts.account(id).make_request('get')
44+
if data.success and data.data: return self.create_dataclass(id, data.data)
45+
46+
# If APIM gets deprecated, fall back to accounts host
47+
print("APIM deprecated! File an issue on my repository. Check your input beforehand.")
3548
data: 'Response[AccountResponse]' = await self.rec_net.accounts.account(id).make_request('get')
36-
if data.data: return self.create_dataclass(id, data.data)
49+
if data.success and data.data: return self.create_dataclass(id, data.data)
50+
51+
# No luck
52+
print("APIM and Accounts deprecated! File an issue on my repository. Check your input beforehand.")
3753
return None
3854

3955
async def get_many(self, names: List[str]) -> List['Account']:
@@ -46,8 +62,17 @@ async def get_many(self, names: List[str]) -> List['Account']:
4662
:return: A list of account objects.
4763
"""
4864
bulk = stringify_bulk(names)
65+
data: 'Response[List[AccountResponse]]' = await self.rec_net.apim.accounts.account.bulk.make_request('post', body = {'name': bulk})
66+
if data.success: return self.create_from_data_list(data.data)
67+
68+
# If APIM gets deprecated, fall back to accounts host
69+
print("APIM deprecated! File an issue on my repository. Check your input beforehand.")
4970
data: 'Response[List[AccountResponse]]' = await self.rec_net.accounts.account.bulk.make_request('post', body = {'name': bulk})
50-
return self.create_from_data_list(data.data)
71+
if data.success: return self.create_from_data_list(data.data)
72+
73+
# No luck
74+
print("APIM and Accounts deprecated! File an issue on my repository. Check your input beforehand.")
75+
return []
5176

5277
async def fetch_many(self, ids: List[int]) -> List['Account']:
5378
"""
@@ -58,8 +83,17 @@ async def fetch_many(self, ids: List[int]) -> List['Account']:
5883
:param ids: A list of ids.
5984
:return: A list of account objects.
6085
"""
86+
data: 'Response[List[AccountResponse]]' = await self.rec_net.apim.accounts.account.bulk.make_request('post', body = {'id': ids})
87+
if data.success: return self.create_from_data_list(data.data)
88+
89+
# If APIM gets deprecated, fall back to accounts host
90+
print("APIM deprecated! File an issue on my repository. Check your input beforehand.")
6191
data: 'Response[List[AccountResponse]]' = await self.rec_net.accounts.account.bulk.make_request('post', body = {'id': ids})
62-
return self.create_from_data_list(data.data)
92+
if data.success: return self.create_from_data_list(data.data)
93+
94+
# No luck
95+
print("APIM and Accounts deprecated! File an issue on my repository. Check your input beforehand.")
96+
return []
6397

6498
async def search(self, query: str) -> List['Account']:
6599
"""
@@ -71,7 +105,16 @@ async def search(self, query: str) -> List['Account']:
71105
:return: A list of account objects.
72106
"""
73107
data: 'Response[List[AccountResponse]]' = await self.rec_net.apim.accounts.account.search.make_request('get', params = {'name': str(query)})
74-
return self.create_from_data_list(data.data)
108+
if data.success: return self.create_from_data_list(data.data)
109+
110+
# If APIM gets deprecated, fall back to accounts host
111+
print("APIM deprecated! File an issue on my repository. Check your input beforehand.")
112+
data: 'Response[List[AccountResponse]]' = await self.rec_net.accounts.account.search.make_request('get', params = {'name': str(query)})
113+
if data.success: return self.create_from_data_list(data.data)
114+
115+
# No luck
116+
print("APIM and Accounts deprecated! File an issue on my repository. Check your input beforehand.")
117+
return []
75118

76119
def create_dataclass(self, id: int, data: Optional['AccountResponse'] = None) -> 'Account':
77120
"""

0 commit comments

Comments
 (0)