/*
* Copyright 2017 Hewlett-Packard Enterprise Development Company, L.P.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
*/
package com.hp.autonomy.frontend.find.idol.answer;
import com.hp.autonomy.searchcomponents.idol.answer.ask.AskAnswerServerRequest;
import com.hp.autonomy.searchcomponents.idol.answer.ask.AskAnswerServerRequestBuilder;
import com.hp.autonomy.searchcomponents.idol.answer.ask.AskAnswerServerService;
import com.hp.autonomy.types.idol.responses.answer.AskAnswer;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping(AnswerServerController.BASE_PATH)
class AnswerServerController {
static final String BASE_PATH = "/api/public/answer";
static final String ASK_PATH = "ask";
static final String TEXT_PARAM = "text";
static final String MAX_RESULTS_PARAM = "maxResults";
private final AskAnswerServerService askAnswerServerService;
private final ObjectFactory<AskAnswerServerRequestBuilder> requestBuilderFactory;
@Autowired
AnswerServerController(final AskAnswerServerService askAnswerServerService,
final ObjectFactory<AskAnswerServerRequestBuilder> requestBuilderFactory) {
this.askAnswerServerService = askAnswerServerService;
this.requestBuilderFactory = requestBuilderFactory;
}
@RequestMapping(value = ASK_PATH, method = RequestMethod.GET)
public List<AskAnswer> ask(@RequestParam(TEXT_PARAM)
final String text,
@RequestParam(value = MAX_RESULTS_PARAM, required = false)
final Integer maxResults) {
final AskAnswerServerRequest request = requestBuilderFactory.getObject()
.text(text)
.maxResults(maxResults)
.build();
return askAnswerServerService.ask(request);
}
}