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 {}