event rcv
This commit is contained in:
@ -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
42
src/typing.rs
Normal 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,
|
||||
}
|
Reference in New Issue
Block a user