@@ -19,7 +19,7 @@ use churn_domain::{Agent, LeaseResp, LogEvent, ServerEnrollReq, ServerMonitorRes
|
||||
use clap::{Args, Parser, Subcommand, ValueEnum};
|
||||
use event::EventService;
|
||||
use lease::LeaseService;
|
||||
use serde::{Deserialize};
|
||||
use serde::Deserialize;
|
||||
use serde_json::json;
|
||||
|
||||
use crate::db::Db;
|
||||
@@ -208,24 +208,33 @@ async fn logs(
|
||||
}
|
||||
}
|
||||
|
||||
let events = match cursor.cursor {
|
||||
Some(c) => state.events.get_from_cursor(c).await,
|
||||
None => state.events.get_from_beginning().await,
|
||||
}
|
||||
.map_err(AppError::Internal)?;
|
||||
match cursor.cursor {
|
||||
Some(c) => {
|
||||
let events = state
|
||||
.events
|
||||
.get_from_cursor(c)
|
||||
.await
|
||||
.map_err(AppError::Internal)?;
|
||||
|
||||
if events.is_empty() {
|
||||
return Ok(Json(ServerMonitorResp {
|
||||
cursor: cursor.cursor,
|
||||
logs: Vec::new(),
|
||||
}));
|
||||
}
|
||||
Ok(Json(ServerMonitorResp {
|
||||
cursor: events.last().map(|e| e.id),
|
||||
logs: events
|
||||
.iter()
|
||||
.map(|e| format!("{}: {}", e.author, e.content))
|
||||
.collect(),
|
||||
}))
|
||||
}
|
||||
None => {
|
||||
let cursor = state
|
||||
.events
|
||||
.get_latest_cursor()
|
||||
.await
|
||||
.map_err(AppError::Internal)?;
|
||||
|
||||
Ok(Json(ServerMonitorResp {
|
||||
cursor: events.last().map(|e| e.id),
|
||||
logs: events
|
||||
.iter()
|
||||
.map(|e| format!("{}: {}", e.author, e.content))
|
||||
.collect(),
|
||||
}))
|
||||
return Ok(Json(ServerMonitorResp {
|
||||
cursor: Some(cursor),
|
||||
logs: Vec::new(),
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user