Skip to content

Commit a82fde8

Browse files
author
Carlo Feliciano Aureus
committed
Issue-8: Use field name if key as no alias
1 parent 34e880a commit a82fde8

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/main/java/com/intuit/graphql/orchestrator/batch/EntityFetcherBatchLoader.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@
2828
import java.util.HashMap;
2929
import java.util.List;
3030
import java.util.Map;
31+
import java.util.Objects;
3132
import java.util.concurrent.CompletionStage;
3233
import java.util.stream.Collectors;
3334
import org.apache.commons.collections4.CollectionUtils;
35+
import org.apache.commons.collections4.MapUtils;
3436
import org.dataloader.BatchLoader;
3537

3638
public class EntityFetcherBatchLoader implements BatchLoader<DataFetchingEnvironment, DataFetcherResult<Object>> {
@@ -143,15 +145,17 @@ private Map<String, Object> createRepresentation(
143145
DataFetchingEnvironment dataFetchingEnvironment
144146
){
145147
Map<String, Object> dataSource = dataFetchingEnvironment.getSource();
146-
Map<String, String> fieldToAliasMap = buildFieldToAliasMap(dataFetchingEnvironment);
148+
Map<String, String> keyToAliasMap = buildkeyToAliasMap(dataFetchingEnvironment);
147149

148150
Map<String, Object> entityRepresentation = new HashMap<>();
149151
entityRepresentation.put(Introspection.TypeNameMetaFieldDef.getName(), this.entityTypeName);
150152

151153
this.representationFieldTemplate
152154
.forEach(fieldName -> {
153-
String dataSourceKey = fieldToAliasMap.get(fieldName);
154-
entityRepresentation.put(fieldName, dataSource.get(dataSourceKey));
155+
String keyAlias = keyToAliasMap.get(fieldName);
156+
String dataSourceKey = keyAlias != null ? keyAlias : fieldName;
157+
Object value = Objects.requireNonNull(dataSource.get(dataSourceKey), "Entity Fetch failed. Key " + dataSourceKey + " not found in source");
158+
entityRepresentation.put(fieldName, value);
155159
});
156160

157161
return entityRepresentation;
@@ -163,7 +167,7 @@ private Map<String, Object> createRepresentation(
163167
* @param dataFetchingEnvironment
164168
* @return
165169
*/
166-
private Map<String, String> buildFieldToAliasMap(DataFetchingEnvironment dataFetchingEnvironment) {
170+
private Map<String, String> buildkeyToAliasMap(DataFetchingEnvironment dataFetchingEnvironment) {
167171
MergedField parentField = dataFetchingEnvironment.getExecutionStepInfo().getParent().getField();
168172
return parentField.getSingleField().getSelectionSet().getSelections()
169173
.stream()

0 commit comments

Comments
 (0)