Skip to content
This repository was archived by the owner on Jan 8, 2019. It is now read-only.

Commit 833658e

Browse files
committed
Refactoring: merged common code in search controllers
1 parent 8cb4e6f commit 833658e

File tree

2 files changed

+11
-50
lines changed

2 files changed

+11
-50
lines changed

app/controllers/SearchController.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,13 @@ public Result index(String q,
8888
int displayWidth) {
8989
SearchSort sort = buildSearchSort(sortField, sortOrder);
9090

91+
return renderSearch(q, rangeType, relative, from, to, keyword, interval, page, savedSearchId, fields, displayWidth, sort, null, null);
92+
}
93+
94+
protected Result renderSearch(String q, String rangeType, int relative, String from, String to, String keyword, String interval, int page, String savedSearchId, String fields, int displayWidth, SearchSort sort, Stream stream, String filter) {
9195
UniversalSearch search;
9296
try {
93-
search = getSearch(q, null, rangeType, relative, from, to, keyword, page, sort);
97+
search = getSearch(q, filter, rangeType, relative, from, to, keyword, page, sort);
9498
} catch(InvalidRangeParametersException e2) {
9599
return status(400, views.html.errors.error.render("Invalid range parameters provided.", e2, request()));
96100
} catch(IllegalArgumentException e1) {
@@ -102,6 +106,7 @@ public Result index(String q,
102106
SavedSearch savedSearch;
103107
Set<String> selectedFields = getSelectedFields(fields);
104108
String formattedHistogramResults;
109+
105110
try {
106111
if(savedSearchId != null && !savedSearchId.isEmpty()) {
107112
savedSearch = savedSearchService.get(savedSearchId);
@@ -111,7 +116,7 @@ public Result index(String q,
111116

112117
searchResult = search.search();
113118
if (searchResult.getError() != null) {
114-
return ok(views.html.search.queryerror.render(currentUser(), q, searchResult, savedSearch, fields, null));
119+
return ok(views.html.search.queryerror.render(currentUser(), q, searchResult, savedSearch, fields, stream));
115120
}
116121
searchResult.setAllFields(getAllFields());
117122

@@ -129,12 +134,13 @@ public Result index(String q,
129134
}
130135

131136
if (searchResult.getTotalResultCount() > 0) {
132-
return ok(views.html.search.results.render(currentUser(), search, searchResult, histogramResult, formattedHistogramResults, q, page, savedSearch, selectedFields, serverNodes.asMap(), null));
137+
return ok(views.html.search.results.render(currentUser(), search, searchResult, histogramResult, formattedHistogramResults, q, page, savedSearch, selectedFields, serverNodes.asMap(), stream));
133138
} else {
134-
return ok(views.html.search.noresults.render(currentUser(), q, searchResult, savedSearch, selectedFields, null));
139+
return ok(views.html.search.noresults.render(currentUser(), q, searchResult, savedSearch, selectedFields, stream));
135140
}
136141
}
137142

143+
138144
protected String determineHistogramResolution(final SearchResult searchResult) {
139145
final String interval;
140146
final int queryRangeInMinutes = Minutes.minutesBetween(searchResult.getFromDateTime(), searchResult.getToDateTime()).getMinutes();

app/controllers/StreamSearchController.java

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -59,52 +59,7 @@ public Result index(String streamId,
5959

6060
String filter = "streams:" + streamId;
6161

62-
UniversalSearch search;
63-
try {
64-
search = getSearch(q, filter, rangeType, relative, from, to, keyword, page, sort);
65-
} catch(InvalidRangeParametersException e2) {
66-
return status(400, views.html.errors.error.render("Invalid range parameters provided.", e2, request()));
67-
} catch(IllegalArgumentException e1) {
68-
return status(400, views.html.errors.error.render("Invalid range type provided.", e1, request()));
69-
}
70-
71-
SearchResult searchResult;
72-
DateHistogramResult histogramResult;
73-
SavedSearch savedSearch;
74-
Set<String> selectedFields = getSelectedFields(fields);
75-
String formattedHistogramResults;
76-
77-
try {
78-
if(savedSearchId != null && !savedSearchId.isEmpty()) {
79-
savedSearch = savedSearchService.get(savedSearchId);
80-
} else {
81-
savedSearch = null;
82-
}
83-
84-
searchResult = search.search();
85-
if (searchResult.getError() != null) {
86-
return ok(views.html.search.queryerror.render(currentUser(), q, searchResult, savedSearch, fields, stream));
87-
}
88-
searchResult.setAllFields(getAllFields());
89-
90-
// histogram resolution (strangely aka interval)
91-
if (interval == null || interval.isEmpty() || !SearchTools.isAllowedDateHistogramInterval(interval)) {
92-
interval = determineHistogramResolution(searchResult);
93-
}
94-
histogramResult = search.dateHistogram(interval);
95-
formattedHistogramResults = formatHistogramResults(histogramResult.getResults(), displayWidth);
96-
} catch (IOException e) {
97-
return status(504, views.html.errors.error.render(ApiClient.ERROR_MSG_IO, e, request()));
98-
} catch (APIException e) {
99-
String message = "There was a problem with your search. We expected HTTP 200, but got a HTTP " + e.getHttpCode() + ".";
100-
return status(504, views.html.errors.error.render(message, e, request()));
101-
}
102-
103-
if (searchResult.getTotalResultCount() > 0) {
104-
return ok(views.html.search.results.render(currentUser(), search, searchResult, histogramResult, formattedHistogramResults, q, page, savedSearch, selectedFields, serverNodes.asMap(), stream));
105-
} else {
106-
return ok(views.html.search.noresults.render(currentUser(), q, searchResult, savedSearch, selectedFields, stream));
107-
}
62+
return renderSearch(q, rangeType, relative, from, to, keyword, interval, page, savedSearchId, fields, displayWidth, sort, stream, filter);
10863
}
10964

11065
@Override

0 commit comments

Comments
 (0)