25 lines
822 B
Rust
25 lines
822 B
Rust
use crate::http::context::{AppContext, OpenApiResult, bad_request};
|
|
use crate::http::payloads::PathPayload;
|
|
use crate::io::fs;
|
|
use poem_openapi::payload::Json;
|
|
|
|
pub async fn get_current_project(ctx: &AppContext) -> OpenApiResult<Json<Option<String>>> {
|
|
let result = fs::get_current_project(&ctx.state, ctx.store.as_ref()).map_err(bad_request)?;
|
|
Ok(Json(result))
|
|
}
|
|
|
|
pub async fn open_project(
|
|
payload: Json<PathPayload>,
|
|
ctx: &AppContext,
|
|
) -> OpenApiResult<Json<String>> {
|
|
let confirmed = fs::open_project(payload.0.path, &ctx.state, ctx.store.as_ref())
|
|
.await
|
|
.map_err(bad_request)?;
|
|
Ok(Json(confirmed))
|
|
}
|
|
|
|
pub async fn close_project(ctx: &AppContext) -> OpenApiResult<Json<bool>> {
|
|
fs::close_project(&ctx.state, ctx.store.as_ref()).map_err(bad_request)?;
|
|
Ok(Json(true))
|
|
}
|