event rcv

This commit is contained in:
quantulr
2024-01-18 14:35:29 +08:00
parent 826b670b27
commit b13dd6f92f
2 changed files with 47 additions and 2 deletions

View File

@ -1,16 +1,19 @@
mod typing;
use axum::{routing::{get, post}, Router, Json};
use axum::http::StatusCode;
use serde::Deserialize;
use typing::EventMessage;
#[derive(Deserialize)]
struct EventRecv {
content: String,
}
async fn event_rcv_handle(Json(form_data): Json<EventRecv>) -> Result<String, (StatusCode, String)> {
async fn event_rcv_handle(Json(form_data): Json<EventMessage>) -> Result<String, (StatusCode, String)> {
tokio::spawn(async move {
println!("收到告警,向飞书推送消息");
reqwest::get(format!("https://www.feishu.cn/flow/api/trigger-webhook/d96aa14944ed0595d831e9d68834b47b?content={}", &form_data.content)).await
reqwest::get(format!("https://www.feishu.cn/flow/api/trigger-webhook/d96aa14944ed0595d831e9d68834b47b?content={}", &form_data.params.send_time)).await
});
Ok(String::from("success"))
}

42
src/typing.rs Normal file
View File

@ -0,0 +1,42 @@
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub struct EventData {}
#[derive(Serialize, Deserialize)]
pub struct Event {
#[serde(rename = "eventId")]
pub event_id: String,
#[serde(rename = "eventType")]
pub event_type: i64,
#[serde(rename = "happenTime")]
pub happen_time: String,
#[serde(rename = "srcIndex")]
pub src_index: String,
#[serde(rename = "srcName")]
pub src_name: String,
#[serde(rename = "srcParentIdex")]
pub src_parent_idex: String,
#[serde(rename = "srcType")]
pub src_type: String,
pub status: i64,
#[serde(rename = "eventLvl")]
pub event_lvl: i64,
pub timeout: i64,
pub data: EventData,
}
#[derive(Serialize, Deserialize)]
pub struct Params {
#[serde(rename = "sendTime")]
pub send_time: String,
pub ability: String,
pub uids: String,
pub events: Vec<Event>,
}
#[derive(Serialize, Deserialize)]
pub struct EventMessage {
pub method: String,
pub params: Params,
}