@@ -50,6 +50,7 @@ service::ResolverMap Query::getResolvers() const noexcept
5050 { R"gql( tasks)gql" sv, [this ](service::ResolverParams&& params) { return resolveTasks (std::move (params)); } },
5151 { R"gql( nested)gql" sv, [this ](service::ResolverParams&& params) { return resolveNested (std::move (params)); } },
5252 { R"gql( anyType)gql" sv, [this ](service::ResolverParams&& params) { return resolveAnyType (std::move (params)); } },
53+ { R"gql( default)gql" sv, [this ](service::ResolverParams&& params) { return resolveDefault (std::move (params)); } },
5354 { R"gql( expensive)gql" sv, [this ](service::ResolverParams&& params) { return resolveExpensive (std::move (params)); } },
5455 { R"gql( tasksById)gql" sv, [this ](service::ResolverParams&& params) { return resolveTasksById (std::move (params)); } },
5556 { R"gql( __typename)gql" sv, [this ](service::ResolverParams&& params) { return resolve_typename (std::move (params)); } },
@@ -231,6 +232,16 @@ service::AwaitableResolver Query::resolveAnyType(service::ResolverParams&& param
231232 return service::ModifiedResult<UnionType>::convert<service::TypeModifier::List, service::TypeModifier::Nullable>(std::move (result), std::move (params));
232233}
233234
235+ service::AwaitableResolver Query::resolveDefault (service::ResolverParams&& params) const
236+ {
237+ std::unique_lock resolverLock (_resolverMutex);
238+ auto directives = std::move (params.fieldDirectives );
239+ auto result = _pimpl->getDefault (service::FieldParams (service::SelectionSetParams{ params }, std::move (directives)));
240+ resolverLock.unlock ();
241+
242+ return service::ModifiedResult<std::string>::convert<service::TypeModifier::Nullable>(std::move (result), std::move (params));
243+ }
244+
234245service::AwaitableResolver Query::resolve_typename (service::ResolverParams&& params) const
235246{
236247 return service::ModifiedResult<std::string>::convert (std::string{ R"gql( Query)gql" }, std::move (params));
@@ -277,7 +288,8 @@ void AddQueryDetails(const std::shared_ptr<schema::ObjectType>& typeQuery, const
277288 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))),
278289 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))), {
279290 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)
280- })
291+ }),
292+ schema::Field::Make (R"gql( default)gql" sv, R"md( )md" sv, std::nullopt , schema->LookupType (R"gql( String)gql" sv))
281293 });
282294}
283295
0 commit comments