Skip to content

Commit

Permalink
Insert ndc-spec version into CapabilitiesResponse instead of expectin…
Browse files Browse the repository at this point in the history
…g connector to do it
  • Loading branch information
dmoverton committed Jul 8, 2024
1 parent 7f83820 commit 3cece04
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 25 deletions.
27 changes: 25 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions crates/sdk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ rustls = ["reqwest/rustls"]
ndc-test = ["dep:ndc-test"]

[dependencies]
ndc-models = { git = "http://github.com/hasura/ndc-spec.git", tag = "v0.1.4" }
ndc-test = { git = "http://github.com/hasura/ndc-spec.git", tag = "v0.1.4", optional = true }
ndc-models = { git = "http://github.com/hasura/ndc-spec.git" }
ndc-test = { git = "http://github.com/hasura/ndc-spec.git", optional = true }

async-trait = "0.1.79"
axum = { version = "0.6.20", features = ["http2"] }
Expand Down
2 changes: 1 addition & 1 deletion crates/sdk/src/connector.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ pub trait Connector {
///
/// This function implements the [capabilities endpoint](https://hasura.github.io/ndc-spec/specification/capabilities.html)
/// from the NDC specification.
async fn get_capabilities() -> JsonResponse<models::CapabilitiesResponse>;
async fn get_capabilities() -> models::Capabilities;

/// Get the connector's schema.
///
Expand Down
32 changes: 14 additions & 18 deletions crates/sdk/src/connector/example.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,28 +48,24 @@ impl Connector for Example {
Ok(())
}

async fn get_capabilities() -> JsonResponse<models::CapabilitiesResponse> {
models::CapabilitiesResponse {
version: "0.1.4".into(),
capabilities: models::Capabilities {
relationships: None,
query: models::QueryCapabilities {
variables: None,
async fn get_capabilities() -> models::Capabilities {
models::Capabilities {
relationships: None,
query: models::QueryCapabilities {
variables: None,
aggregates: None,
explain: None,
nested_fields: models::NestedFieldCapabilities {
filter_by: None,
order_by: None,
aggregates: None,
explain: None,
nested_fields: models::NestedFieldCapabilities {
filter_by: None,
order_by: None,
aggregates: None,
},
},
mutation: models::MutationCapabilities {
transactional: None,
explain: None,
},
},
mutation: models::MutationCapabilities {
transactional: None,
explain: None,
},
}
.into()
}

async fn get_schema(
Expand Down
8 changes: 6 additions & 2 deletions crates/sdk/src/default_main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,11 @@ async fn get_metrics<C: Connector>(
}

async fn get_capabilities<C: Connector>() -> JsonResponse<CapabilitiesResponse> {
C::get_capabilities().await
let capabilities = C::get_capabilities().await;
CapabilitiesResponse {
version: ndc_models::VERSION.into(),
capabilities
}.into()
}

async fn get_health<C: Connector>(State(state): State<ServerState<C>>) -> Result<(), HealthError> {
Expand Down Expand Up @@ -441,7 +445,7 @@ mod ndc_test_commands {
async fn get_capabilities(
&self,
) -> Result<ndc_models::CapabilitiesResponse, ndc_test::error::Error> {
C::get_capabilities()
super::get_capabilities::<C>()
.await
.into_value::<Box<dyn std::error::Error>>()
.map_err(ndc_test::error::Error::OtherError)
Expand Down

0 comments on commit 3cece04

Please sign in to comment.