MCPcopy Create free account
hub / github.com/Botloader/botloader / get_session

Method get_session

components/stores/src/web.rs:152–183  ·  view source on GitHub ↗
(&self, token: &str)

Source from the content-addressed store, hash-verified

150 }
151
152 pub async fn get_session(&self, token: &str) -> Result<Option<Session>, Error> {
153 let session = match sqlx::query_as!(
154 DbSession,
155 "SELECT token, kind, user_id, discriminator, username, avatar, created_at FROM \
156 web_sessions WHERE token = $1;",
157 token
158 )
159 .fetch_one(&self.pool)
160 .await
161 {
162 Ok(s) => s,
163 Err(sqlx::Error::RowNotFound) => return Ok(None),
164 Err(err) => return Err(err.into()),
165 };
166
167 let oauth_token = sqlx::query_as!(
168 DbOauthToken,
169 "SELECT user_id, discord_bearer_token, discord_refresh_token, discord_token_expires_at
170 FROM discord_oauth_tokens WHERE user_id = $1",
171 session.user_id,
172 )
173 .fetch_one(&self.pool)
174 .await?;
175
176 Ok(Some(Session {
177 token: token.to_string(),
178 kind: SessionType::from(session.kind),
179 oauth_token: oauth_token.into(),
180 created_at: session.created_at,
181 user: session.into(),
182 }))
183 }
184
185 pub async fn get_all_sessions(&self, user_id: Id<UserMarker>) -> Result<Vec<Session>, Error> {
186 let oauth_token: DiscordOauthToken = sqlx::query_as!(

Callers 3

del_sessionFunction · 0.80
do_loginMethod · 0.80
session_mwFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected