提交 189343cb 编写于 作者: B Bogdan Kobylynskyi

Fix FieldResolver generation: consider modelNamePrefix/Suffix #58

上级 c9da6041
......@@ -66,6 +66,8 @@ public class GraphqlCodegenGradleTask extends DefaultTask {
mappingConfig.setGenerateEqualsAndHashCode(generateEqualsAndHashCode);
mappingConfig.setGenerateToString(generateToString);
mappingConfig.setGenerateAsyncApi(generateAsyncApi);
mappingConfig.setGenerateParameterizedFieldsResolvers(generateParameterizedFieldsResolvers);
mappingConfig.setFieldsWithResolvers(fieldsWithResolvers);
new GraphqlCodegen(getSchemas(), outputDir, mappingConfig, buildJsonSupplier()).generate();
}
......
......@@ -33,13 +33,15 @@ public class FieldResolverDefinitionToDataModelMapper {
*/
public static Map<String, Object> map(MappingConfig mappingConfig, List<FieldDefinition> fieldDefs,
String typeName) {
Map<String, Object> dataModel = new HashMap<>();
String packageName = MapperUtils.getApiPackageName(mappingConfig);
String typeNameNormalized = MapperUtils.getClassNameWithPrefixAndSuffix(mappingConfig, typeName);
Map<String, Object> dataModel = new HashMap<>();
dataModel.put(PACKAGE, packageName);
dataModel.put(IMPORTS, MapperUtils.getImportsForFieldResolvers(mappingConfig, packageName));
dataModel.put(CLASS_NAME, getClassName(typeName));
dataModel.put(CLASS_NAME, getClassName(typeNameNormalized));
dataModel.put(FIELDS, fieldDefs.stream()
.map(fieldDef -> mapFieldDefinition(mappingConfig, fieldDef, typeName))
.map(fieldDef -> mapFieldDefinition(mappingConfig, fieldDef, typeNameNormalized))
.collect(Collectors.toList()));
return dataModel;
}
......@@ -83,7 +85,7 @@ public class FieldResolverDefinitionToDataModelMapper {
* - PersonResolver
*/
private static String getClassName(String typeName) {
return Utils.capitalize(typeName) + "Resolver";
return typeName + "Resolver";
}
}
......@@ -55,16 +55,18 @@ class GraphqlCodegenFieldsResolversTest {
@Test
void generate_CustomFieldsResolvers() throws Exception {
mappingConfig.setModelNamePrefix("Github");
mappingConfig.setModelNameSuffix("TO");
mappingConfig.setFieldsWithResolvers(Collections.singleton("AcceptTopicSuggestionPayload.topic"));
generator.generate();
File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles());
assertSameTrimmedContent(new File("src/test/resources/expected-classes/AcceptTopicSuggestionPayload.java.txt"),
getGeneratedFile(files, "AcceptTopicSuggestionPayload.java"));
assertSameTrimmedContent(new File("src/test/resources/expected-classes/AcceptTopicSuggestionPayloadResolver.java.txt"),
getGeneratedFile(files, "AcceptTopicSuggestionPayloadResolver.java"));
assertSameTrimmedContent(new File("src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTO.java.txt"),
getGeneratedFile(files, "GithubAcceptTopicSuggestionPayloadTO.java"));
assertSameTrimmedContent(new File("src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTOResolver.java.txt"),
getGeneratedFile(files, "GithubAcceptTopicSuggestionPayloadTOResolver.java"));
}
private static File getGeneratedFile(File[] files, String fileName) throws FileNotFoundException {
......
package com.github.graphql;
import java.util.*;
import graphql.schema.*;
public interface AcceptTopicSuggestionPayloadResolver {
Topic topic(AcceptTopicSuggestionPayload acceptTopicSuggestionPayload, DataFetchingEnvironment env) throws Exception;
}
\ No newline at end of file
......@@ -2,14 +2,14 @@ package com.github.graphql;
import java.util.*;
public class AcceptTopicSuggestionPayload {
public class GithubAcceptTopicSuggestionPayloadTO {
private String clientMutationId;
public AcceptTopicSuggestionPayload() {
public GithubAcceptTopicSuggestionPayloadTO() {
}
public AcceptTopicSuggestionPayload(String clientMutationId) {
public GithubAcceptTopicSuggestionPayloadTO(String clientMutationId) {
this.clientMutationId = clientMutationId;
}
......@@ -35,8 +35,8 @@ public class AcceptTopicSuggestionPayload {
}
public AcceptTopicSuggestionPayload build() {
return new AcceptTopicSuggestionPayload(clientMutationId);
public GithubAcceptTopicSuggestionPayloadTO build() {
return new GithubAcceptTopicSuggestionPayloadTO(clientMutationId);
}
}
......
package com.github.graphql;
import java.util.*;
import graphql.schema.*;
public interface GithubAcceptTopicSuggestionPayloadTOResolver {
GithubTopicTO topic(GithubAcceptTopicSuggestionPayloadTO githubAcceptTopicSuggestionPayloadTO, DataFetchingEnvironment env) throws Exception;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册