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 a1230c8388de383355c55305b647f69a15e09877..06899674432d4fb70c3ad7910516d3c534697d14 100644 --- a/src/main/java/no/nibio/vips/logic/service/POIService.java +++ b/src/main/java/no/nibio/vips/logic/service/POIService.java @@ -53,6 +53,7 @@ import jakarta.ws.rs.core.Response.Status; import no.nibio.vips.gis.GISUtil; import no.nibio.vips.logic.controller.session.PointOfInterestBean; import no.nibio.vips.logic.controller.session.SessionControllerGetter; +import no.nibio.vips.logic.controller.session.UserBean; import no.nibio.vips.logic.entity.Country; import no.nibio.vips.logic.entity.Organization; import no.nibio.vips.logic.entity.PointOfInterest; @@ -76,6 +77,9 @@ public class POIService { @EJB PointOfInterestBean pointOfInterestBean; + @EJB + UserBean userBean; + /** * Get a list of weather stations for a given organization * @@ -87,8 +91,8 @@ public class POIService { @Produces("application/json;charset=UTF-8") @TypeHint(PointOfInterestWeatherStation[].class) public Response getWeatherstationsForOrganization(@PathParam("organizationId") Integer organizationId) { - Organization organization = SessionControllerGetter.getUserBean().getOrganization(organizationId); - List<PointOfInterestWeatherStation> retVal = SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(organization, Boolean.TRUE, Boolean.FALSE); + Organization organization = userBean.getOrganization(organizationId); + List<PointOfInterestWeatherStation> retVal = pointOfInterestBean.getWeatherstationsForOrganization(organization, Boolean.TRUE, Boolean.FALSE); return Response.ok().entity(retVal).build(); } @@ -102,7 +106,7 @@ public class POIService { @Produces("application/json;charset=UTF-8") @TypeHint(PointOfInterest.class) public Response getPoi(@PathParam("pointOfInterestId") Integer pointOfInterestId) { - PointOfInterest retVal = SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(pointOfInterestId); + PointOfInterest retVal = pointOfInterestBean.getPointOfInterest(pointOfInterestId); return Response.ok().entity(retVal).build(); } @@ -119,14 +123,13 @@ public class POIService { return Response.status(Status.BAD_REQUEST).entity("Unable to parse input").build(); } - VipsLogicUser user = SessionControllerGetter.getUserBean().getUserFromUUID(httpServletRequest); + VipsLogicUser user = userBean.getUserFromUUID(httpServletRequest); if (user == null) { LOGGER.error("No user found for UUID in Authorization"); return Response.status(Status.UNAUTHORIZED).build(); } LOGGER.error("Remember to check for roles as well, if necessary!"); - PointOfInterestBean poiBean = SessionControllerGetter.getPointOfInterestBean(); Integer poiTypeId = poiMap.get("pointOfInterestTypeId") != null ? Integer.parseInt(poiMap.get("pointOfInterestTypeId").toString()) : null; if(poiTypeId == null) { return Response.status(Status.BAD_REQUEST).entity("pointOfInterestTypeId is required").build(); @@ -154,7 +157,7 @@ public class POIService { Point p3d = gisUtil.createPointWGS84(coordinate); poiToSave.setGisGeom(p3d); } - poiToSave = poiBean.storePoi(poiToSave); + poiToSave = pointOfInterestBean.storePoi(poiToSave); if (poiToSave != null) { return Response.status(Response.Status.CREATED) @@ -182,10 +185,10 @@ public class POIService { ) { List<Integer> poiTypes = Arrays.asList(poiTypesStr.split(",")).stream().map(str->Integer.valueOf(str)).collect(Collectors.toList()); - Organization organization = SessionControllerGetter.getUserBean().getOrganization(organizationId); - List<PointOfInterest> pois = SessionControllerGetter.getPointOfInterestBean().getPoisForOrganizationAndOfTypes(organization, poiTypes); + Organization organization = userBean.getOrganization(organizationId); + List<PointOfInterest> pois = pointOfInterestBean.getPoisForOrganizationAndOfTypes(organization, poiTypes); - return Response.ok().entity(SessionControllerGetter.getPointOfInterestBean().getPoisAsGeoJson(pois)).build(); + return Response.ok().entity(pointOfInterestBean.getPoisAsGeoJson(pois)).build(); } @POST @@ -194,11 +197,11 @@ public class POIService { @Consumes(MediaType.APPLICATION_JSON) public Response getPoisGeoJson(Set<Integer> ids) { // Retrieve POIs from data source - List<PointOfInterest> pois = SessionControllerGetter.getPointOfInterestBean().getPois(ids); + List<PointOfInterest> pois = pointOfInterestBean.getPois(ids); if (pois == null || pois.isEmpty()) { return Response.noContent().build(); } - return Response.ok(SessionControllerGetter.getPointOfInterestBean().getPoisAsGeoJson(pois)).build(); + return Response.ok(pointOfInterestBean.getPoisAsGeoJson(pois)).build(); } /** @@ -212,7 +215,7 @@ public class POIService { @Produces("application/json;charset=UTF-8") @TypeHint(PointOfInterest.class) public Response getPoiByName(@PathParam("poiName") String poiName) { - PointOfInterest retVal = SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(poiName); + PointOfInterest retVal = pointOfInterestBean.getPointOfInterest(poiName); return retVal != null ? Response.ok().entity(retVal).build() : Response.noContent().build(); } @@ -233,12 +236,12 @@ public class POIService { if (user == null) { String uuidStr = httpServletRequest.getHeader(HttpHeaders.AUTHORIZATION); UUID uuid = UUID.fromString(uuidStr); - user = SessionControllerGetter.getUserBean().findVipsLogicUser(uuid); + user = userBean.findVipsLogicUser(uuid); if (user == null) { return Response.status(Status.UNAUTHORIZED).build(); } } - List<PointOfInterest> retVal = SessionControllerGetter.getPointOfInterestBean().getRelevantPointOfInterestsForUser(user); + List<PointOfInterest> retVal = pointOfInterestBean.getRelevantPointOfInterestsForUser(user); return Response.ok().entity(retVal).build(); } @@ -266,7 +269,6 @@ public class POIService { Map<Object, Object> mapFromApp = oM.readValue(poiJson, new TypeReference<HashMap<Object, Object>>() { }); Integer pointOfInterestId = (Integer) mapFromApp.get("pointOfInterestId"); - PointOfInterestBean pointOfInterestBean = SessionControllerGetter.getPointOfInterestBean(); // Check if it is marked as deleted or not if (mapFromApp.get("deleted") != null && (mapFromApp.get("deleted").equals(true))) { if (pointOfInterestBean.getPointOfInterest(pointOfInterestId) != null) {