@@ -53,6 +53,7 @@ service::ResolverMap Query::getResolvers() const noexcept
5353 { R"gql( __type)gql" sv, [this ](service::ResolverParams&& params) { return resolve_type (std::move (params)); } },
5454 { R"gql( nested)gql" sv, [this ](service::ResolverParams&& params) { return resolveNested (std::move (params)); } },
5555 { R"gql( anyType)gql" sv, [this ](service::ResolverParams&& params) { return resolveAnyType (std::move (params)); } },
56+ { R"gql( default)gql" sv, [this ](service::ResolverParams&& params) { return resolveDefault (std::move (params)); } },
5657 { R"gql( __schema)gql" sv, [this ](service::ResolverParams&& params) { return resolve_schema (std::move (params)); } },
5758 { R"gql( expensive)gql" sv, [this ](service::ResolverParams&& params) { return resolveExpensive (std::move (params)); } },
5859 { R"gql( tasksById)gql" sv, [this ](service::ResolverParams&& params) { return resolveTasksById (std::move (params)); } },
@@ -235,6 +236,16 @@ service::AwaitableResolver Query::resolveAnyType(service::ResolverParams&& param
235236 return service::ModifiedResult<UnionType>::convert<service::TypeModifier::List, service::TypeModifier::Nullable>(std::move (result), std::move (params));
236237}
237238
239+ service::AwaitableResolver Query::resolveDefault (service::ResolverParams&& params) const
240+ {
241+ std::unique_lock resolverLock (_resolverMutex);
242+ auto directives = std::move (params.fieldDirectives );
243+ auto result = _pimpl->getDefault (service::FieldParams (service::SelectionSetParams{ params }, std::move (directives)));
244+ resolverLock.unlock ();
245+
246+ return service::ModifiedResult<std::string>::convert<service::TypeModifier::Nullable>(std::move (result), std::move (params));
247+ }
248+
238249service::AwaitableResolver Query::resolve_typename (service::ResolverParams&& params) const
239250{
240251 return service::ModifiedResult<std::string>::convert (std::string{ R"gql( Query)gql" }, std::move (params));
@@ -295,7 +306,8 @@ void AddQueryDetails(const std::shared_ptr<schema::ObjectType>& typeQuery, const
295306 schema::Field::Make (R"gql( testTaskState)gql" sv, R"md( )md" sv, std::nullopt , schema->WrapType (introspection::TypeKind::NON_NULL, schema->LookupType (R"gql( TaskState)gql" sv))),
296307 schema::Field::Make (R"gql( anyType)gql" sv, R"md( )md" sv, std::nullopt , schema->WrapType (introspection::TypeKind::NON_NULL, schema->WrapType (introspection::TypeKind::LIST, schema->LookupType (R"gql( UnionType)gql" sv))), {
297308 schema::InputValue::Make (R"gql( ids)gql" sv, R"md( )md" sv, schema->WrapType (introspection::TypeKind::NON_NULL, schema->WrapType (introspection::TypeKind::LIST, schema->WrapType (introspection::TypeKind::NON_NULL, schema->LookupType (R"gql( ID)gql" sv)))), R"gql( )gql" sv)
298- })
309+ }),
310+ schema::Field::Make (R"gql( default)gql" sv, R"md( Test C++ keyword names)md" sv, std::nullopt , schema->LookupType (R"gql( String)gql" sv))
299311 });
300312}
301313
0 commit comments