mod admin;
mod attachment;
mod definition;
mod edit;
mod query;
use crate::{ArcGISClient, LayerId, QueryBuilder};
use tracing::instrument;
pub struct FeatureServiceClient<'a> {
pub(super) base_url: String,
pub(super) client: &'a ArcGISClient,
}
impl<'a> FeatureServiceClient<'a> {
#[instrument(skip(base_url, client))]
pub fn new(base_url: impl Into<String>, client: &'a ArcGISClient) -> Self {
let base_url = base_url.into();
tracing::debug!(base_url = %base_url, "Creating FeatureServiceClient");
Self { base_url, client }
}
#[instrument(skip(self), fields(layer_id = %layer_id, base_url = %self.base_url))]
pub fn query(&'a self, layer_id: LayerId) -> QueryBuilder<'a> {
tracing::debug!(layer_id = %layer_id, "Creating query builder");
QueryBuilder::new(self, layer_id)
}
}