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
No related branches found
No related tags found
2 merge requests!22Develop,!18Spotit nordic map layers
...@@ -46,7 +46,7 @@ import no.nibio.vips.logic.entity.OrganismLocalePK; ...@@ -46,7 +46,7 @@ import no.nibio.vips.logic.entity.OrganismLocalePK;
import no.nibio.vips.logic.util.HierarchyCategoryLocaleNames; 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> * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/ */
@Stateless @Stateless
...@@ -481,4 +481,11 @@ public class OrganismBean { ...@@ -481,4 +481,11 @@ public class OrganismBean {
public List<Organism> findOrganismsByLatinNames(List<String> latinNames) { public List<Organism> findOrganismsByLatinNames(List<String> latinNames) {
return em.createNamedQuery("Organism.findByLatinNames").setParameter("latinNames", latinNames).getResultList(); 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; ...@@ -42,7 +42,7 @@ import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement; 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> * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/ */
@Entity @Entity
...@@ -57,6 +57,7 @@ import javax.xml.bind.annotation.XmlRootElement; ...@@ -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.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.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.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.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")}) @NamedQuery(name = "Organism.findByLogicallyDeleted", query = "SELECT o FROM Organism o WHERE o.logicallyDeleted = :logicallyDeleted")})
public class Organism implements Serializable { public class Organism implements Serializable {
......
...@@ -30,7 +30,7 @@ import javax.validation.constraints.Size; ...@@ -30,7 +30,7 @@ import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement; 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> * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/ */
@Entity @Entity
...@@ -40,7 +40,8 @@ import javax.xml.bind.annotation.XmlRootElement; ...@@ -40,7 +40,8 @@ import javax.xml.bind.annotation.XmlRootElement;
@NamedQuery(name = "OrganismLocale.findAll", query = "SELECT o FROM OrganismLocale o"), @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.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.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 { public class OrganismLocale implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@EmbeddedId @EmbeddedId
......
...@@ -712,6 +712,24 @@ public class LogicService { ...@@ -712,6 +712,24 @@ public class LogicService {
return Response.ok().entity(organismList).build(); 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 * Get a list of crops
* @return * @return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment