package com.robonobo.midas.controller;
import java.io.IOException;
import java.net.URLDecoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.robonobo.core.api.model.User;
import com.robonobo.core.api.proto.CoreApi.SearchResponse;
import com.robonobo.midas.search.SearchService;
import com.robonobo.midas.search.SearchServiceImpl;
@Controller
public class SearchController extends BaseController {
@Autowired
SearchService searchService;
@RequestMapping("/search")
public void runSearch(@RequestParam("type") String searchType, @RequestParam("q") String query,
@RequestParam(value = "first", required = false) Integer firstResult, HttpServletRequest req,
HttpServletResponse resp) throws IOException {
User u = getAuthUser(req);
if (u == null) {
send401(req, resp);
return;
}
int fr = (firstResult == null) ? 0 : firstResult;
SearchResponse response = searchService.search(searchType, query, fr);
writeToOutput(response, resp);
log.info("Returning " + response.getObjectIdCount() + " results to " + u.getEmail() + " for search '"
+ query + "'");
}
}