mockforge_http/handlers/
snapshot_diff.rs1use crate::management::ManagementState;
6use async_trait::async_trait;
7pub use mockforge_intelligence::handlers::snapshot_diff::*;
8
9#[async_trait]
10impl SnapshotStateProvider for ManagementState {
11 async fn snapshot_items(&self) -> Vec<MockSnapshotItem> {
12 self.mocks
13 .read()
14 .await
15 .iter()
16 .map(|mock| MockSnapshotItem {
17 id: mock.id.clone(),
18 method: mock.method.clone(),
19 path: mock.path.clone(),
20 status_code: mock.status_code.unwrap_or(200),
21 response_body: mock.response.body.clone(),
22 response_headers: mock.response.headers.clone(),
23 config: serde_json::to_value(mock).unwrap_or_default(),
24 })
25 .collect()
26 }
27}