package br.gov.servicos.editor.frontend;
import br.gov.servicos.editor.conteudo.ListaDeConteudo;
import br.gov.servicos.editor.security.UserProfiles;
import lombok.experimental.FieldDefaults;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import static lombok.AccessLevel.PRIVATE;
@Controller
@FieldDefaults(level = PRIVATE, makeFinal = true)
@RequestMapping("/editar/api")
class ApiController {
Orgaos orgaos;
Siorg siorg;
VCGE vcge;
UserProfiles profiles;
ListaDeConteudo listaDeConteudo;
@Autowired
public ApiController(Orgaos orgaos, Siorg siorg, VCGE vcge, UserProfiles profiles, ListaDeConteudo listaDeConteudo) {
this.orgaos = orgaos;
this.siorg = siorg;
this.vcge = vcge;
this.profiles = profiles;
this.listaDeConteudo = listaDeConteudo;
}
@RequestMapping("/ping")
@ResponseBody
Ping ping() {
return new Ping(profiles.get(), new Date().getTime());
}
@RequestMapping("/vcge")
@ResponseBody
String vcge() {
return vcge.get();
}
@RequestMapping("/orgaos")
@ResponseBody
List<OrgaoDTO> orgaos(@RequestParam("q") String termo) {
return orgaos.get(termo);
}
@RequestMapping("/orgao")
@ResponseBody
String orgao(@RequestParam("urlOrgao") String urlOrgao) throws IOException {
return siorg.nomeDoOrgao(urlOrgao).orElse("");
}
@RequestMapping("/id-unico/{id}")
@ResponseBody
boolean isIdUnico(@PathVariable("id") String id) {
return listaDeConteudo.isIdUnico(id);
}
}