flipt 1.4.0

Flipt Server SDK
Documentation
pub mod models;

use crate::{error::UpstreamError, models::ListParameters, util::deserialize};
use models::ListFlagsResponse;
use reqwest::Client;
use url::Url;

pub struct Flags {
    client: Client,
    url: Url,
}

impl Flags {
    pub fn new(client: Client, url: Url) -> Self {
        Self { client, url }
    }

    pub async fn list_flags(
        &self,
        namespace_key: &str,
        params: Option<&ListParameters>,
    ) -> Result<ListFlagsResponse, UpstreamError> {
        let endpoint = format!(
            "{}api/v1/namespaces/{}/flags",
            self.url.as_str(),
            namespace_key
        );

        let mut request = self.client.get(endpoint);

        if let Some(p) = params {
            request = request.query(p);
        }

        let response = match request.send().await {
            Ok(r) => r,
            Err(e) => {
                return Err(UpstreamError::default_with_message(e.to_string()));
            }
        };

        deserialize(response).await
    }
}