`GET /api/plugins/hermes-lcm/search`
(
State(state): State<DashboardState>,
JsonQuery(params): JsonQuery<SearchParams>,
)
| 137 | |
| 138 | /// `GET /api/plugins/hermes-lcm/search` |
| 139 | pub(crate) async fn search( |
| 140 | State(state): State<DashboardState>, |
| 141 | JsonQuery(params): JsonQuery<SearchParams>, |
| 142 | ) -> LcmResult { |
| 143 | let limit = coerce_limit(params.limit, 25, 200); |
| 144 | let offset = params.offset.unwrap_or(0).max(0); |
| 145 | let since = lcm_service::parse_epoch(¶ms.since); |
| 146 | let until = lcm_service::parse_epoch(¶ms.until); |
| 147 | let payload = lcm_service::search_payload( |
| 148 | &state, |
| 149 | lcm_service::SearchPayloadArgs { |
| 150 | query: ¶ms.q, |
| 151 | limit, |
| 152 | offset, |
| 153 | role: ¶ms.role, |
| 154 | source: ¶ms.source, |
| 155 | session_id: ¶ms.session_id, |
| 156 | since, |
| 157 | until, |
| 158 | }, |
| 159 | ) |
| 160 | .await?; |
| 161 | Ok(ok(payload)) |
| 162 | } |
| 163 | |
| 164 | #[derive(Deserialize)] |
| 165 | pub(crate) struct SessionParams { |
no test coverage detected