From 717f7248120dc19a867d4b7d17ddca673433d97a Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Wed, 12 Mar 2025 10:44:54 +0100
Subject: [PATCH] Cleanup: Remove duplicate endpoints

---
 .../vips/logic/service/LogicService.java      | 73 -------------------
 .../nibio/vips/logic/service/POIService.java  |  8 +-
 2 files changed, 6 insertions(+), 75 deletions(-)

diff --git a/src/main/java/no/nibio/vips/logic/service/LogicService.java b/src/main/java/no/nibio/vips/logic/service/LogicService.java
index ed24e8cf..5740e822 100755
--- a/src/main/java/no/nibio/vips/logic/service/LogicService.java
+++ b/src/main/java/no/nibio/vips/logic/service/LogicService.java
@@ -54,7 +54,6 @@ import jakarta.ws.rs.PathParam;
 import jakarta.ws.rs.Produces;
 import jakarta.ws.rs.QueryParam;
 import jakarta.ws.rs.core.Context;
-import jakarta.ws.rs.core.HttpHeaders;
 import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.core.Response.Status;
 import no.nibio.vips.entity.WeatherObservation;
@@ -75,9 +74,7 @@ import no.nibio.vips.logic.entity.MessageTag;
 import no.nibio.vips.logic.entity.ModelInformation;
 import no.nibio.vips.logic.entity.Organism;
 import no.nibio.vips.logic.entity.Organization;
-import no.nibio.vips.logic.entity.PointOfInterest;
 import no.nibio.vips.logic.entity.PointOfInterestType;
-import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
 import no.nibio.vips.logic.entity.UserAuthentication;
 import no.nibio.vips.logic.entity.UserAuthenticationType;
 import no.nibio.vips.logic.entity.VipsLogicRole;
@@ -796,76 +793,6 @@ public class LogicService {
         return Response.ok().entity(retVal).build();
     }
     
-
-    
-    /**
-     * Get a list of locations (pois) for a given organization
-     * @param organizationId
-     * @return 
-     */
-    @GET
-    @Path("poi/organization/{organizationId}")
-    @Produces("application/json;charset=UTF-8")
-    @TypeHint(PointOfInterestWeatherStation[].class)
-    public Response getPoisForOrganization(@PathParam("organizationId") Integer organizationId)
-    {
-        Organization organization = userBean.getOrganization(organizationId);
-        List<PointOfInterestWeatherStation> retVal = pointOfInterestBean.getWeatherstationsForOrganization(organization, Boolean.TRUE, Boolean.FALSE);
-        return Response.ok().entity(retVal).build();
-    }
-    
-    /**
-     * 
-     * @param pointOfInterestId
-     * @return a particular POI (Point of interest)
-     */
-    @GET
-    @Path("poi/{pointOfInterestId}")
-    @Produces("application/json;charset=UTF-8")
-    @TypeHint(PointOfInterest.class)
-    public Response getPoi(@PathParam("pointOfInterestId") Integer pointOfInterestId)
-    {
-        PointOfInterest retVal = pointOfInterestBean.getPointOfInterest(pointOfInterestId);
-        return Response.ok().entity(retVal).build();
-    }
-    
-    /**
-     * Find a POI (Point of interest) by name
-     * @param poiName
-     * @return 
-     */
-    @GET
-    @Path("poi/name/{poiName}")
-    @Produces("application/json;charset=UTF-8")
-    @TypeHint(PointOfInterest.class)
-    public Response getPoiByName(@PathParam("poiName") String poiName)
-    {
-        PointOfInterest retVal = pointOfInterestBean.getPointOfInterest(poiName);
-        return retVal != null ? Response.ok().entity(retVal).build() : Response.noContent().build();
-    }
-    
-    /**
-     * If used outside of VIPSLogic: Requires a valid UUID to be provided in the Authorization header
-     * @return a list of POIs for the user logged in in this session
-     */
-    @GET
-    @Path("poi/user")
-    @Produces("application/json;charset=UTF-8")
-    @Facet("restricted")
-    @TypeHint(PointOfInterest[].class)
-    public Response getPoisForCurrentUser()
-    {
-        VipsLogicUser user = (VipsLogicUser) httpServletRequest.getSession().getAttribute("user");
-        // Could be the VIPS obs app or some other client using UUID
-        if(user == null)
-        {
-        	String uuidStr = httpServletRequest.getHeader(HttpHeaders.AUTHORIZATION);
-    		UUID uuid = UUID.fromString(uuidStr);
-    		user = userBean.findVipsLogicUser(uuid);
-        }
-        List<PointOfInterest> retVal = pointOfInterestBean.getRelevantPointOfInterestsForUser(user);
-        return Response.ok().entity(retVal).build();
-    }
     
     /**
      * 
diff --git a/src/main/java/no/nibio/vips/logic/service/POIService.java b/src/main/java/no/nibio/vips/logic/service/POIService.java
index b0104d40..a1230c83 100644
--- a/src/main/java/no/nibio/vips/logic/service/POIService.java
+++ b/src/main/java/no/nibio/vips/logic/service/POIService.java
@@ -36,6 +36,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.webcohesion.enunciate.metadata.Facet;
 import com.webcohesion.enunciate.metadata.rs.TypeHint;
+import jakarta.ejb.EJB;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.ws.rs.Consumes;
 import jakarta.ws.rs.GET;
@@ -72,8 +73,11 @@ public class POIService {
     @Context
     private HttpServletRequest httpServletRequest;
 
+    @EJB
+    PointOfInterestBean pointOfInterestBean;
+
     /**
-     * Get a list of locations (pois) for a given organization
+     * Get a list of weather stations for a given organization
      *
      * @param organizationId Database id for the organization
      * @return List of weather stations for the organization
@@ -82,7 +86,7 @@ public class POIService {
     @Path("organization/{organizationId}")
     @Produces("application/json;charset=UTF-8")
     @TypeHint(PointOfInterestWeatherStation[].class)
-    public Response getPoisForOrganization(@PathParam("organizationId") Integer organizationId) {
+    public Response getWeatherstationsForOrganization(@PathParam("organizationId") Integer organizationId) {
         Organization organization = SessionControllerGetter.getUserBean().getOrganization(organizationId);
         List<PointOfInterestWeatherStation> retVal = SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(organization, Boolean.TRUE, Boolean.FALSE);
         return Response.ok().entity(retVal).build();
-- 
GitLab