use crate::dto::CameraView;
use crate::AppState;
use axum::extract::{Path, State};
use axum::http::StatusCode;
use axum::Json;
pub async fn list_cameras(State(state): State<AppState>) -> Json<Vec<CameraView>> {
Json(state.all().map(|c| CameraView::of(c)).collect())
}
pub async fn get_camera(
State(state): State<AppState>,
Path(id): Path<String>,
) -> Result<Json<CameraView>, StatusCode> {
let camera = state.get(&id).ok_or(StatusCode::NOT_FOUND)?;
Ok(Json(CameraView::of(&camera)))
}