DocAtrRestController.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.PathVariable;
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.doc.attributes.jpa.DocAtrRepository;

@RestController
@RequestMapping("/admin/rest/webpages/attributes/doc")
@PreAuthorize("@WebjetSecurityService.hasPermission('menuWebpages')")
public class DocAtrRestController {

    private final DocAtrRepository docAtrRepository;

    @Autowired
    public DocAtrRestController(DocAtrRepository docAtrRepository) {
        this.docAtrRepository = docAtrRepository;
    }

    /**
     * Vrati zoznam uz zadanych hodnot v danom atribute
     * @param term
     * @return
     */
    @GetMapping("/autoselect/{atrId}/")
    public List<String> getAutoSelect(@PathVariable Integer atrId, @RequestParam String term) {

        if (term == null) term = "";
        String termLC = term.toLowerCase().trim();

        List<String> ac = new ArrayList<>();

        //get all distinct current values
        List<String> values = docAtrRepository.findAutoSelect(atrId);

        //Loop gained entities and add group name to autcomplete list "ac"
        for(String value : values) {
            if (Tools.isEmpty(value)) continue;
            if (Tools.isEmpty(termLC) || "%".equals(termLC) || "*".equals(termLC) || value.toLowerCase().contains(term)) ac.add(value);
        }

        return ac;
    }

}