Skip to main content

objectiveai_cli/command/db/config/
get.rs

1//! `config db get` — read the db section of on-disk config (address
2//! + port + user + password + database). Missing fields stay `None`.
3
4use objectiveai_sdk::cli::command::db::config::get::{Request, Response};
5
6use crate::context::Context;
7use crate::error::Error;
8
9pub async fn execute(ctx: &Context, request: Request) -> Result<Response, Error> {
10    let mut config = ctx.filesystem.read_config_view(request.scope).await?;
11    let db = config.db();
12    Ok(Response {
13        address: db.get_address().map(String::from),
14        user: db.get_user().map(String::from),
15        password: db.get_password().map(String::from),
16        database: db.get_database().map(String::from),
17    })
18}
19
20pub mod request_schema {
21    use objectiveai_sdk::cli::command::db::config::get as sdk;
22    use objectiveai_sdk::cli::command::db::config::get::request_schema::{Request, Response};
23
24    use crate::context::Context;
25    use crate::error::Error;
26
27    pub async fn execute(_ctx: &Context, _request: Request) -> Result<Response, Error> {
28        Ok(objectiveai_sdk::cli::command::ResponseSchema(schemars::schema_for!(sdk::Request)))
29    }
30}
31
32pub mod response_schema {
33    use objectiveai_sdk::cli::command::db::config::get as sdk;
34    use objectiveai_sdk::cli::command::db::config::get::response_schema::{Request, Response};
35
36    use crate::context::Context;
37    use crate::error::Error;
38
39    pub async fn execute(_ctx: &Context, _request: Request) -> Result<Response, Error> {
40        Ok(objectiveai_sdk::cli::command::ResponseSchema(schemars::schema_for!(sdk::Response)))
41    }
42}