6
6
import starlette .requests
7
7
from starlette import exceptions
8
8
9
- from backend import constants , models
9
+ from backend import constants
10
+ from backend .models import dtos
10
11
11
12
12
13
async def fetch_bearer_token (code : str , redirect : str , * , refresh : bool ) -> dict :
@@ -51,7 +52,7 @@ async def fetch_user_details(bearer_token: str) -> dict:
51
52
return r .json ()
52
53
53
54
54
- async def _get_role_info () -> list [models .DiscordRole ]:
55
+ async def _get_role_info () -> list [dtos .DiscordRole ]:
55
56
"""Get information about the roles in the configured guild."""
56
57
async with httpx .AsyncClient () as client :
57
58
r = await client .get (
@@ -60,13 +61,13 @@ async def _get_role_info() -> list[models.DiscordRole]:
60
61
)
61
62
62
63
r .raise_for_status ()
63
- return [models .DiscordRole (** role ) for role in r .json ()]
64
+ return [dtos .DiscordRole (** role ) for role in r .json ()]
64
65
65
66
66
67
async def get_roles (
67
68
* ,
68
69
force_refresh : bool = False ,
69
- ) -> list [models .DiscordRole ]:
70
+ ) -> list [dtos .DiscordRole ]:
70
71
"""
71
72
Get a list of all roles from the cache, or discord API if not available.
72
73
@@ -77,7 +78,7 @@ async def get_roles(
77
78
roles = await constants .REDIS_CLIENT .hgetall (role_cache_key )
78
79
if roles :
79
80
return [
80
- models .DiscordRole (** json .loads (role_data )) for role_id , role_data in roles .items ()
81
+ dtos .DiscordRole (** json .loads (role_data )) for role_id , role_data in roles .items ()
81
82
]
82
83
83
84
roles = await _get_role_info ()
@@ -86,7 +87,7 @@ async def get_roles(
86
87
return roles
87
88
88
89
89
- async def _fetch_member_api (member_id : str ) -> models .DiscordMember | None :
90
+ async def _fetch_member_api (member_id : str ) -> dtos .DiscordMember | None :
90
91
"""Get a member by ID from the configured guild using the discord API."""
91
92
async with httpx .AsyncClient () as client :
92
93
r = await client .get (
@@ -99,14 +100,14 @@ async def _fetch_member_api(member_id: str) -> models.DiscordMember | None:
99
100
return None
100
101
101
102
r .raise_for_status ()
102
- return models .DiscordMember (** r .json ())
103
+ return dtos .DiscordMember (** r .json ())
103
104
104
105
105
106
async def get_member (
106
107
user_id : str ,
107
108
* ,
108
109
force_refresh : bool = False ,
109
- ) -> models .DiscordMember | None :
110
+ ) -> dtos .DiscordMember | None :
110
111
"""
111
112
Get a member from the cache, or from the discord API.
112
113
@@ -118,7 +119,7 @@ async def get_member(
118
119
if not force_refresh :
119
120
result = await constants .REDIS_CLIENT .get (member_key )
120
121
if result :
121
- return models .DiscordMember (** json .loads (result ))
122
+ return dtos .DiscordMember (** json .loads (result ))
122
123
123
124
member = await _fetch_member_api (user_id )
124
125
if member :
@@ -150,14 +151,14 @@ async def _verify_access_helper(
150
151
if "admin" in request .auth .scopes :
151
152
return
152
153
153
- form = models .Form (** form )
154
+ form = dtos .Form (** form )
154
155
155
156
for role_id in getattr (form , attribute , None ) or []:
156
157
role = await request .state .db .roles .find_one ({"id" : role_id })
157
158
if not role :
158
159
continue
159
160
160
- role = models .DiscordRole (** json .loads (role ["data" ]))
161
+ role = dtos .DiscordRole (** json .loads (role ["data" ]))
161
162
162
163
if role .name in request .auth .scopes :
163
164
return
0 commit comments