1use crate::{Client, types::*};
4
5#[derive(Clone)]
7pub struct MiniAppClient {
8 core: Client,
9}
10
11impl MiniAppClient {
12 pub fn new(core: Client) -> Self {
13 Self { core }
14 }
15
16 pub fn auth(&self) -> AuthApi {
18 AuthApi::new(self.core.clone())
19 }
20}
21
22pub struct AuthApi {
24 core: Client,
25}
26
27impl AuthApi {
28 pub fn new(core: Client) -> Self {
29 Self { core }
30 }
31
32 pub fn code_to_session<S: Into<String>>(&self, js_code: S) -> CodeToSessionRequest {
33 CodeToSessionRequest {
34 core: self.core.clone(),
35 js_code: js_code.into(),
36 }
37 }
38}
39
40pub struct CodeToSessionRequest {
42 core: Client,
43 js_code: String,
44}
45
46impl CodeToSessionRequest {
47 pub async fn call(self) -> crate::Result<SessionInfo> {
48 tracing::info!("Code to session: {}", self.js_code);
50 Ok(SessionInfo {
51 openid: "mock_openid".to_string(),
52 session_key: "mock_session_key".to_string(),
53 unionid: None,
54 errcode: None,
55 errmsg: None,
56 })
57 }
58}