37 lines
773 B
Plaintext
37 lines
773 B
Plaintext
use warp::Filter;
|
|
use std::{
|
|
thread,
|
|
sync::{Arc, Mutex},
|
|
}
|
|
use crate::config;
|
|
use serde::{Deserialize, Serialize};
|
|
use crate::mpsc::*;
|
|
use tokio::sync::RwLock;
|
|
use crate::api;
|
|
|
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
|
pub struct Data_to_send {
|
|
pub action_type: String,
|
|
pub content: String,
|
|
pub character: String,
|
|
}
|
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
|
pub struct Data_to_receive {
|
|
pub response: String,
|
|
}
|
|
|
|
pub async fn api_process(data_to_send: Arc<api::Data_to_send>)
|
|
{
|
|
let route = warp::path("happening")
|
|
.map({
|
|
let state = Arc::clone(&data_to_send);
|
|
move || {
|
|
let current_data = state.lock().unwrap().clone();
|
|
warp::reply::json(current_data)
|
|
}
|
|
});
|
|
warp::serve(routes)
|
|
.run(([127, 0, 0, 1],config::API_PORT));
|
|
.await;
|
|
}
|