feat: add GET with help

This commit is contained in:
əlemi 2023-10-15 04:56:33 +02:00
parent c11b12a03f
commit 62a7cdbbef

View file

@ -1,5 +1,5 @@
use std::net::SocketAddr; use std::net::SocketAddr;
use axum::{routing::{put, post}, http::StatusCode, Json, Router, Form, response::Response, extract::FromRequest}; use axum::{routing::{get, put, post}, http::StatusCode, Json, Router, Form};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use clap::Parser; use clap::Parser;
use teloxide::prelude::*; use teloxide::prelude::*;
@ -30,8 +30,9 @@ async fn main() {
*CHAT_ID.write().await = ChatId(args.target); *CHAT_ID.write().await = ChatId(args.target);
let app = Router::new() let app = Router::new()
.route("/suggestion", post(suggestion_form)) .route("/send", get(suggestion_help))
.route("/suggestion", put(suggestion_json)); .route("/send", post(suggestion_form))
.route("/send", put(suggestion_json));
let addr : SocketAddr = args.addr.parse().expect("invalid host provided"); let addr : SocketAddr = args.addr.parse().expect("invalid host provided");
@ -43,6 +44,11 @@ async fn main() {
.unwrap(); .unwrap();
} }
async fn suggestion_help() -> (StatusCode, Json<Suggestion>) {
let body = "use this endpoint to send me direct messages. this is the accepted structure. on PUT send as json, on POST send as form-urlencoded".to_string();
(StatusCode::OK, Json(Suggestion { author: None, contact: None, body }))
}
async fn suggestion_json(Json(payload): Json<Suggestion>) -> (StatusCode, Json<Acknowledgement>) { async fn suggestion_json(Json(payload): Json<Suggestion>) -> (StatusCode, Json<Acknowledgement>) {
suggestion_inner(payload).await suggestion_inner(payload).await
} }
@ -69,7 +75,7 @@ async fn suggestion_inner(payload: Suggestion) -> (StatusCode, Json<Acknowledgem
} }
} }
#[derive(Deserialize)] #[derive(Serialize, Deserialize)]
struct Suggestion { struct Suggestion {
author: Option<String>, author: Option<String>,
contact: Option<String>, contact: Option<String>,