reactive_graph_dynamic_graph_impl/field/
namespace.rs1use async_graphql::dynamic::Field;
2use async_graphql::dynamic::FieldFuture;
3use async_graphql::dynamic::FieldValue;
4use async_graphql::dynamic::TypeRef;
5use convert_case::Case::Camel;
6use convert_case::Case::Pascal;
7use convert_case::Casing;
8
9pub fn namespace_field_name(namespace: &String) -> String {
10 namespace.to_case(Camel)
11}
12
13pub fn namespace_type_name(namespace: &String) -> String {
14 format!("{}Namespace", namespace.to_case(Pascal))
15}
16
17pub fn namespace_mutation_type_name(namespace: &String) -> String {
18 format!("{}Mutations", namespace.to_case(Pascal))
19}
20
21pub fn namespace_type_ref(namespace: &String) -> TypeRef {
22 TypeRef::named_nn(namespace_type_name(namespace))
23}
24
25pub fn namespace_mutation_type_ref(namespace: &String) -> TypeRef {
26 TypeRef::named_nn(namespace_mutation_type_name(namespace))
27}
28
29pub fn namespace_query_field(namespace: &String) -> Field {
30 let namespace_inner = namespace.clone();
31 Field::new(namespace_field_name(namespace), namespace_type_ref(namespace), move |_ctx| {
32 let namespace = namespace_inner.clone();
33 FieldFuture::new(async move { Ok(Some(FieldValue::value(namespace))) })
34 })
35}
36
37pub fn namespace_mutation_field(namespace: &String) -> Field {
38 let namespace_inner = namespace.clone();
39 Field::new(namespace_field_name(namespace), namespace_mutation_type_ref(namespace), move |_ctx| {
40 let namespace = namespace_inner.clone();
41 FieldFuture::new(async move { Ok(Some(FieldValue::value(namespace))) })
42 })
43}