rsmycqu 0.1.0

A Rust library for interacting with Chonqing University services, including SSO authentication, campus card management, and more.
Documentation
use reqwest::{RequestBuilder, Response, StatusCode};

use crate::{
    errors::{ApiError, card::CardResult},
    session::{Client, Session},
};

pub(super) async fn card_request_handler<T>(session: &Session, f: T) -> CardResult<Response>
where
    T: FnOnce(&Client) -> RequestBuilder,
{
    if session.access_infos.card_access_info.is_none() {
        return Err(ApiError::NotAccess);
    }

    let res = f(&session.client).send().await?;

    if res.status() == StatusCode::UNAUTHORIZED {
        return Err(ApiError::NotAccess);
    }
    Ok(res)
}