use crate::{Client, types::*};
#[derive(Clone)]
pub struct MiniAppClient {
core: Client,
}
impl MiniAppClient {
pub fn new(core: Client) -> Self {
Self { core }
}
pub fn auth(&self) -> AuthApi {
AuthApi::new(self.core.clone())
}
}
pub struct AuthApi {
core: Client,
}
impl AuthApi {
pub fn new(core: Client) -> Self {
Self { core }
}
pub fn code_to_session<S: Into<String>>(&self, js_code: S) -> CodeToSessionRequest {
CodeToSessionRequest {
core: self.core.clone(),
js_code: js_code.into(),
}
}
}
pub struct CodeToSessionRequest {
core: Client,
js_code: String,
}
impl CodeToSessionRequest {
pub async fn call(self) -> crate::Result<SessionInfo> {
tracing::info!("Code to session: {}", self.js_code);
Ok(SessionInfo {
openid: "mock_openid".to_string(),
session_key: "mock_session_key".to_string(),
unionid: None,
errcode: None,
errmsg: None,
})
}
}