55 lines
1.7 KiB
Rust
55 lines
1.7 KiB
Rust
use actix_web::post;
|
|
use actix_web::web;
|
|
use actix_web::web::Data;
|
|
use actix_web::Responder;
|
|
use openraft::error::CheckIsLeaderError;
|
|
use openraft::error::Infallible;
|
|
use openraft::error::RaftError;
|
|
use openraft::BasicNode;
|
|
use web::Json;
|
|
|
|
use crate::app::ExampleApp;
|
|
use crate::store::ExampleRequest;
|
|
use crate::ExampleNodeId;
|
|
|
|
/**
|
|
* Application API
|
|
*
|
|
* This is where you place your application, you can use the example below to create your
|
|
* API. The current implementation:
|
|
*
|
|
* - `POST - /write` saves a value in a key and sync the nodes.
|
|
* - `POST - /read` attempt to find a value from a given key.
|
|
*/
|
|
#[post("/write")]
|
|
pub async fn write(
|
|
app: Data<ExampleApp>,
|
|
req: Json<ExampleRequest>,
|
|
) -> actix_web::Result<impl Responder> {
|
|
let response = app.raft.client_write(req.0).await;
|
|
Ok(Json(response))
|
|
}
|
|
// AddVisitor(AddVisitor),
|
|
// AddCaptcha(AddCaptcha),
|
|
// RenameCaptcha(RenameCaptcha),
|
|
// RemoveCaptcha(RemoveCaptcha),
|
|
//#[post("/post")]
|
|
//pub async fn read(app: Data<ExampleApp>, req: Json<String>) -> actix_web::Result<impl Responder> {
|
|
// let state_machine = app.store.state_machine.read().await;
|
|
// let key = req.0;
|
|
// let value = state_machine.data.get(&key).cloned();
|
|
//
|
|
// let res: Result<String, Infallible> = Ok(value.unwrap_or_default());
|
|
// Ok(Json(res))
|
|
//}
|
|
//
|
|
//#[post("/visitor/add")]
|
|
//pub async fn add_visitor(app: Data<ExampleApp>, req: Json<String>) -> actix_web::Result<impl Responder> {
|
|
// let state_machine = app.store.state_machine.read().await;
|
|
// let key = req.0;
|
|
// let value = state_machine.data.get(&key).cloned();
|
|
//
|
|
// let res: Result<String, Infallible> = Ok(value.unwrap_or_default());
|
|
// Ok(Json(res))
|
|
//}
|