Skip to content
Snippets Groups Projects
Commit ee6a1a06 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Added findOrganismsByLocalNames endpoint

parent fc4cf4df
Branches
Tags
2 merge requests!22Develop,!18Spotit nordic map layers
......@@ -46,7 +46,7 @@ import no.nibio.vips.logic.entity.OrganismLocalePK;
import no.nibio.vips.logic.util.HierarchyCategoryLocaleNames;
/**
* @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
* @copyright 2014-2020 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Stateless
......@@ -481,4 +481,11 @@ public class OrganismBean {
public List<Organism> findOrganismsByLatinNames(List<String> latinNames) {
return em.createNamedQuery("Organism.findByLatinNames").setParameter("latinNames", latinNames).getResultList();
}
public List<Organism> findOrganismsByLocalNames(List<String> localNames, String locale) {
return em.createNamedQuery("Organism.findByLocalNames")
.setParameter("localNames", localNames)
.setParameter("locale", locale)
.getResultList();
}
}
......@@ -42,7 +42,7 @@ import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
/**
* @copyright 2013-2014 <a href="http://www.nibio.no/">NIBIO</a>
* @copyright 2013-2020 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Entity
......@@ -57,6 +57,7 @@ import javax.xml.bind.annotation.XmlRootElement;
@NamedQuery(name = "Organism.findByParentOrganismId", query = "SELECT o FROM Organism o WHERE o.parentOrganismId = :parentOrganismId"),
@NamedQuery(name = "Organism.findByLatinName", query = "SELECT o FROM Organism o WHERE o.latinName = :latinName"),
@NamedQuery(name = "Organism.findByLatinNames", query = "SELECT o FROM Organism o WHERE o.latinName IN :latinNames"),
@NamedQuery(name = "Organism.findByLocalNames", query = "SELECT o FROM Organism o WHERE o.organismId IN (SELECT ol.organismId FROM OrganismLocale ol WHERE ol.localName IN(:localNames) AND ol.organismLocalePK.locale = :locale)"),
@NamedQuery(name = "Organism.findByTradeName", query = "SELECT o FROM Organism o WHERE o.tradeName = :tradeName"),
@NamedQuery(name = "Organism.findByLogicallyDeleted", query = "SELECT o FROM Organism o WHERE o.logicallyDeleted = :logicallyDeleted")})
public class Organism implements Serializable {
......
......@@ -30,7 +30,7 @@ import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
/**
* @copyright 2013-2014 <a href="http://www.nibio.no/">NIBIO</a>
* @copyright 2013-2020 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Entity
......@@ -40,7 +40,8 @@ import javax.xml.bind.annotation.XmlRootElement;
@NamedQuery(name = "OrganismLocale.findAll", query = "SELECT o FROM OrganismLocale o"),
@NamedQuery(name = "OrganismLocale.findByOrganismId", query = "SELECT o FROM OrganismLocale o WHERE o.organismLocalePK.organismId = :organismId"),
@NamedQuery(name = "OrganismLocale.findByLocale", query = "SELECT o FROM OrganismLocale o WHERE o.organismLocalePK.locale = :locale"),
@NamedQuery(name = "OrganismLocale.findByLocalName", query = "SELECT o FROM OrganismLocale o WHERE o.localName = :localName")})
@NamedQuery(name = "OrganismLocale.findByLocalName", query = "SELECT o FROM OrganismLocale o WHERE o.localName = :localName")//,
})
public class OrganismLocale implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
......
......@@ -712,6 +712,24 @@ public class LogicService {
return Response.ok().entity(organismList).build();
}
/**
* Look up organisms by local names
* @param keywords
* @return
*/
@GET
@Path("organism/search/localnames/{locale}")
@Produces("application/json;charset=UTF-8")
public Response findOrganismsByLocalNames(
@PathParam("locale") String locale,
@QueryParam("keywords") String keywords
)
{
List<String> localNames = Arrays.asList(keywords.split(",")).stream().map(String::trim).collect(Collectors.toList());
List<Organism> organismList = SessionControllerGetter.getOrganismBean().findOrganismsByLocalNames(localNames, locale);
return Response.ok().entity(organismList).build();
}
/**
* Get a list of crops
* @return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment