Changeset 6043 for SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/rest/RestService.java
- Timestamp:
- 02/24/15 16:58:55 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/rest/RestService.java
r5976 r6043 13 13 import eu.clarin.sru.fcs.aggregator.search.Search; 14 14 import eu.clarin.sru.fcs.aggregator.lang.LanguagesISO693_3; 15 import eu.clarin.sru.fcs.aggregator.search.ExportException; 15 16 import eu.clarin.sru.fcs.aggregator.search.Exports; 16 17 import java.io.IOException; … … 21 22 import java.util.Map; 22 23 import java.util.Set; 24 import java.util.logging.Level; 25 import java.util.logging.Logger; 23 26 import javax.servlet.ServletContext; 24 27 import javax.servlet.http.HttpServletRequest; … … 33 36 import javax.ws.rs.core.MediaType; 34 37 import javax.ws.rs.core.Response; 38 import opennlp.tools.tokenize.TokenizerModel; 35 39 import org.slf4j.LoggerFactory; 36 40 … … 42 46 @Path("/") 43 47 public class RestService { 48 44 49 private static final String EXPORT_FILENAME_PREFIX = "ClarinDFederatedContentSearch-"; 45 50 private static final String TCF_MEDIA_TYPE = "text/tcf+xml"; 46 51 private static final String EXCEL_MEDIA_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 52 private static final String SEARCH_RESULTS_ENCODING = "UTF-8"; 47 53 48 54 private static final org.slf4j.Logger log = LoggerFactory.getLogger(RestService.class); … … 82 88 put("isScan", true); 83 89 put("institutions", scan.getInstitutions()); 90 put("date", scan.getDate()); 84 91 } 85 92 }); … … 91 98 put("isScan", false); 92 99 put("institutions", search.getInstitutions()); 100 put("date", scan.getDate()); 93 101 } 94 102 }); … … 105 113 log.info("get language codes", codes); 106 114 for (String code : codes) { 107 String name = LanguagesISO693_3.getInstance().nameForCode (code);115 String name = LanguagesISO693_3.getInstance().nameForCode_3(code); 108 116 languages.put(code, name != null ? name : code); 109 117 } … … 184 192 } 185 193 186 194 if (format == null || format.trim().isEmpty() || format.trim().equals("text")) { 187 195 String text = Exports.getExportText(search.getResults()); 188 196 return download(text, MediaType.TEXT_PLAIN, search.getQuery() + ".txt"); … … 215 223 .build(); 216 224 } 225 226 @GET 227 @Path("search/{id}/toWeblicht") 228 public Response sendSearchResultsToWeblicht(@PathParam("id") Long searchId, 229 @QueryParam("format") String format) throws Exception { 230 Search search = Aggregator.getInstance().getSearchById(searchId); 231 if (search == null) { 232 return Response.status(Response.Status.NOT_FOUND).entity("Search job not found").build(); 233 } 234 235 String url = null; 236 if (format == null || format.isEmpty() || format.trim().equals("text")) { 237 String text = Exports.getExportText(search.getResults()); 238 if (text != null) { 239 byte[] bytes = text.getBytes(SEARCH_RESULTS_ENCODING); 240 url = DataTransfer.uploadToDropOff(bytes, "text/plan", ".txt"); 241 } 242 } else if (format.equals("tokens")) { 243 byte[] bytes = Exports.getExportTokenizedTCF( 244 search.getResults(), search.getSearchLanguage(), 245 Aggregator.getInstance().getTokenizerModel()); 246 if (bytes != null) { 247 url = DataTransfer.uploadToDropOff(bytes, "text/tcf+xml", ".tcf"); 248 } 249 } else { 250 return Response.status(400).entity("incorrect format parameter").build(); 251 } 252 253 return url == null ? Response.status(503).entity("error while exporting to weblicht").build() 254 : Response.ok().entity(url).build(); 255 } 217 256 }
Note: See TracChangeset
for help on using the changeset viewer.