onebot_api/communication/http_post.rs
1use crate::event::{Event, EventReceiver};
2use axum::body::Bytes;
3use axum::handler::HandlerWithoutStateExt;
4use axum::http::HeaderMap;
5use axum::routing::{get, post};
6use axum::{Json, Router};
7use serde::{Deserialize, Serialize};
8use tokio::net::{TcpListener, ToSocketAddrs};
9use tokio::sync::mpsc;
10
11pub struct HttpPostServer {}
12
13impl HttpPostServer {
14 // pub async fn new(addr: impl ToSocketAddrs) -> anyhow::Result<Self> {
15 // let tcp_listener = TcpListener::bind(addr).await?;
16 // let (tx, mut rx) = mpsc::unbounded_channel();
17 // let router = Router::new().route("/", post(
18 // async move |headers: HeaderMap, body: Bytes| {
19 // let body_str = String::from_utf8(body.to_vec()).unwrap();
20 // let event: Event = serde_json::from_str(&body_str).unwrap();
21 // tx.send(event).unwrap();
22 // }
23 // ));
24 // tokio::spawn(async move {
25 // let data = rx.recv().await.unwrap();
26 // println!("receive data: {data:?}");
27 // });
28 // axum::serve(tcp_listener, router.into_make_service()).await?;
29 // Ok(Self {})
30 // }
31}
32
33// impl EventReceiver for HttpPostServer {}