Skip to content

Commit

Permalink
Hide state fields behind methods.
Browse files Browse the repository at this point in the history
  • Loading branch information
SamirTalwar committed Aug 22, 2024
1 parent aab7f39 commit c48e22c
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
14 changes: 7 additions & 7 deletions crates/sdk/src/default_main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ fn auth_handler(
}

async fn get_metrics<C: Connector>(State(state): State<ServerState<C>>) -> Result<String> {
fetch_metrics::<C>(&state.configuration, &state.state, &state.metrics)
fetch_metrics::<C>(state.configuration(), state.state(), state.metrics())
}

async fn get_capabilities<C: Connector>() -> JsonResponse<CapabilitiesResponse> {
Expand All @@ -368,41 +368,41 @@ async fn get_capabilities<C: Connector>() -> JsonResponse<CapabilitiesResponse>
}

async fn get_health_readiness<C: Connector>(State(state): State<ServerState<C>>) -> Result<()> {
C::get_health_readiness(&state.configuration, &state.state).await
C::get_health_readiness(state.configuration(), state.state()).await
}

async fn get_schema<C: Connector>(
State(state): State<ServerState<C>>,
) -> Result<JsonResponse<SchemaResponse>> {
C::get_schema(&state.configuration).await
C::get_schema(state.configuration()).await
}

async fn post_query_explain<C: Connector>(
State(state): State<ServerState<C>>,
WithRejection(Json(request), _): WithRejection<Json<QueryRequest>, JsonRejection>,
) -> Result<JsonResponse<ExplainResponse>> {
C::query_explain(&state.configuration, &state.state, request).await
C::query_explain(state.configuration(), state.state(), request).await
}

async fn post_mutation_explain<C: Connector>(
State(state): State<ServerState<C>>,
WithRejection(Json(request), _): WithRejection<Json<MutationRequest>, JsonRejection>,
) -> Result<JsonResponse<ExplainResponse>> {
C::mutation_explain(&state.configuration, &state.state, request).await
C::mutation_explain(state.configuration(), state.state(), request).await
}

async fn post_mutation<C: Connector>(
State(state): State<ServerState<C>>,
WithRejection(Json(request), _): WithRejection<Json<MutationRequest>, JsonRejection>,
) -> Result<JsonResponse<MutationResponse>> {
C::mutation(&state.configuration, &state.state, request).await
C::mutation(state.configuration(), state.state(), request).await
}

async fn post_query<C: Connector>(
State(state): State<ServerState<C>>,
WithRejection(Json(request), _): WithRejection<Json<QueryRequest>, JsonRejection>,
) -> Result<JsonResponse<QueryResponse>> {
C::query(&state.configuration, &state.state, request).await
C::query(state.configuration(), state.state(), request).await
}

#[cfg(feature = "ndc-test")]
Expand Down
18 changes: 15 additions & 3 deletions crates/sdk/src/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ use crate::connector::Connector;

#[derive(Debug)]
pub struct ServerState<C: Connector> {
pub configuration: C::Configuration,
pub state: C::State,
pub metrics: prometheus::Registry,
configuration: C::Configuration,
state: C::State,
metrics: prometheus::Registry,
}

impl<C: Connector> Clone for ServerState<C>
Expand Down Expand Up @@ -33,4 +33,16 @@ impl<C: Connector> ServerState<C> {
metrics,
}
}

pub fn configuration(&self) -> &C::Configuration {
&self.configuration
}

pub fn state(&self) -> &C::State {
&self.state
}

pub fn metrics(&self) -> &prometheus::Registry {
&self.metrics
}
}

0 comments on commit c48e22c

Please sign in to comment.