gelbooru_api/auth.rs
1use crate::Error;
2
3/// Credentials for use with API
4#[derive(Clone, Debug)]
5pub struct AuthDetails {
6 pub user: usize,
7 pub key: String,
8}
9
10impl AuthDetails {
11 pub fn from_query_string(qs: &str) -> Result<Self, Error> {
12 let user_start = qs.find("&user_id=").ok_or(Error::ParseAuth)?;
13 let user_raw = &qs[user_start + 9..];
14 let user = user_raw.parse().map_err(|err| Error::ParseUserId(err))?;
15 let key = qs[9..user_start].to_string();
16
17 Ok(Self { user, key })
18 }
19}