use super::logic;
use crate::error::{run_blocking, AppError};
use axum::{extract::State, Json};
use logic::{LockRequest, LockStatus, RoutineStore};
#[utoipa::path(post, path = "/routines/lock",
request_body = LockRequest,
responses((status = 200, body = LockStatus), (status = 400, description = "Unknown scope"), (status = 500, description = "IO error")))]
pub async fn lock_routines(
State(store): State<RoutineStore>,
Json(body): Json<LockRequest>,
) -> Result<Json<LockStatus>, AppError> {
let resp = run_blocking(move || logic::build(&store, &body.scope)).await?;
Ok(Json(resp))
}
#[cfg(test)]
#[path = "http_tests.rs"]
mod http_tests;