Skip to main content

objectiveai_cli/command/functions/profiles/
list.rs

1//! `functions profiles list` — enumerate profiles from the local
2//! filesystem state. Streams one `ResponseItem` (a `RemotePath`) per
3//! profile found under `<state>/profiles/<owner>/<repository>`.
4
5use std::pin::Pin;
6
7use futures::{Stream, StreamExt};
8use objectiveai_sdk::cli::command::functions::profiles::list::{Request, ResponseItem};
9
10use crate::context::Context;
11use crate::error::Error;
12use crate::filesystem::publish::Kind;
13
14type ItemStream = Pin<Box<dyn Stream<Item = Result<ResponseItem, Error>> + Send>>;
15
16pub async fn execute(ctx: &Context, _request: Request) -> Result<ItemStream, Error> {
17    let stream = crate::retrieve::list(ctx, Kind::Profiles).await;
18    Ok(Box::pin(stream.map(Ok)))
19}
20
21pub mod request_schema {
22    use objectiveai_sdk::cli::command::functions::profiles::list as sdk;
23    use objectiveai_sdk::cli::command::functions::profiles::list::request_schema::{Request, Response};
24
25    use crate::context::Context;
26    use crate::error::Error;
27
28    pub async fn execute(_ctx: &Context, _request: Request) -> Result<Response, Error> {
29        Ok(objectiveai_sdk::cli::command::ResponseSchema(schemars::schema_for!(sdk::Request)))
30    }
31}
32
33pub mod response_schema {
34    use objectiveai_sdk::cli::command::functions::profiles::list as sdk;
35    use objectiveai_sdk::cli::command::functions::profiles::list::response_schema::{Request, Response};
36
37    use crate::context::Context;
38    use crate::error::Error;
39
40    pub async fn execute(_ctx: &Context, _request: Request) -> Result<Response, Error> {
41        Ok(objectiveai_sdk::cli::command::ResponseSchema(schemars::schema_for!(sdk::Response)))
42    }
43}