DocAtrDefRestController.java
package sk.iway.iwcm.doc.attributes.rest;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.common.CloudToolsForCore;
import sk.iway.iwcm.doc.attributes.jpa.DocAtrDefEntity;
import sk.iway.iwcm.doc.attributes.jpa.DocAtrDefRepository;
import sk.iway.iwcm.system.datatable.Datatable;
import sk.iway.iwcm.system.datatable.DatatableRestControllerV2;
@RestController
@RequestMapping("/admin/rest/webpages/attributes/def")
@PreAuthorize("@WebjetSecurityService.hasPermission('cmp_attributes')")
@Datatable
public class DocAtrDefRestController extends DatatableRestControllerV2<DocAtrDefEntity, Long> {
private final DocAtrDefRepository docAtrDefRepository;
@Autowired
public DocAtrDefRestController(DocAtrDefRepository docAtrDefRepository) {
super(docAtrDefRepository);
this.docAtrDefRepository = docAtrDefRepository;
}
/**
* Vrati zoznam uz existujucich skupin
* @param term
* @return
*/
@GetMapping("/autocomplete")
public List<String> getAutocomplete(@RequestParam String term) {
if (term == null) term = "";
String termLC = term.toLowerCase().trim();
List<String> ac = new ArrayList<>();
//Get all where group name is like %term%, and distict because its autocomplete list and we dont want duplicity
List<String> groups = docAtrDefRepository.findDistinctGroups(CloudToolsForCore.getDomainId());
//Loop gained entities and add group name to autcomplete list "ac"
for(String group : groups) {
if (Tools.isEmpty(termLC) || "%".equals(termLC) || group.toLowerCase().contains(term)) ac.add(group);
}
return ac;
}
}