Skip to main content

mockforge_http/handlers/
snapshot_diff.rs

1//! Snapshot diff compatibility surface and management-state projection.
2//!
3//! Public DTOs and router entry point retain their original HTTP paths.
4
5use 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}