66import org .digijava .kernel .ampapi .endpoints .reports .designer .ReportProfile ;
77import org .digijava .kernel .ampapi .endpoints .reports .designer .ReportRequest ;
88import org .digijava .kernel .ampapi .endpoints .reports .designer .ReportType ;
9+ import org .digijava .module .aim .dbentity .AmpColumns ;
910
11+ import java .util .ArrayList ;
1012import java .util .List ;
1113import java .util .stream .Collectors ;
1214
@@ -29,6 +31,7 @@ public class ReportColumnValidator implements ReportValidator {
2931 private boolean isEmpty ;
3032
3133 private List <String > invalidIds ;
34+ private List <String > invalidColumnsNames ;
3235
3336 public ReportColumnValidator (final ReportColumnProvider columnProvider ) {
3437 this .columnProvider = columnProvider ;
@@ -53,6 +56,17 @@ public boolean isValid(Object value) {
5356 .map (String ::valueOf )
5457 .collect (Collectors .toList ());
5558
59+ if (!invalidIds .isEmpty ()) {
60+ invalidColumnsNames = new ArrayList <>();
61+ for (String id : invalidIds ) {
62+ final int idNumber = Integer .parseInt (id );
63+ AmpColumns ampColumn = columnProvider .fetchAmpColumns ().stream ().filter (column -> column .getColumnId () == idNumber ).collect (Collectors .toList ()).get (0 );
64+ String name = columnProvider .getTranslatorService ().translateText ( ampColumn .getColumnName () );
65+ String errorText = " - [" + id + "] " + name ;
66+ invalidColumnsNames .add (errorText );
67+ }
68+ }
69+
5670 return invalidIds .isEmpty ();
5771 }
5872
@@ -61,7 +75,7 @@ public ApiErrorMessage getErrorMessage() {
6175 return REPORT_FIELD_REQUIRED .withDetails (COLUMNS );
6276 }
6377
64- return REPORT_INVALID_COLUMNS .withDetails (invalidIds );
78+ return REPORT_INVALID_COLUMNS .withDetails (invalidColumnsNames );
6579 }
6680
6781}
0 commit comments