From 9379a25e8bbf316a582c22c40ef60ee831c6aca6 Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Mon, 25 Oct 2021 12:44:37 +0200 Subject: [PATCH] Added support for sending observationdataschema in ObservationListItem --- .../nibio/vips/logic/entity/Observation.java | 6 ++- .../entity/rest/ObservationListItem.java | 37 ++++++++++++++++++- .../logic/service/ObservationService.java | 13 +++++-- 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/src/main/java/no/nibio/vips/logic/entity/Observation.java b/src/main/java/no/nibio/vips/logic/entity/Observation.java index a259508d..d10dc810 100755 --- a/src/main/java/no/nibio/vips/logic/entity/Observation.java +++ b/src/main/java/no/nibio/vips/logic/entity/Observation.java @@ -629,7 +629,7 @@ public class Observation implements Serializable, no.nibio.vips.observation.Obse * @param locale * @return */ - public ObservationListItem getListItem(String locale) + public ObservationListItem getListItem(String locale, ObservationDataSchema observationDataSchema) { // If geoInfo is from POI, need to add observationId if(this.location != null) @@ -649,7 +649,9 @@ public class Observation implements Serializable, no.nibio.vips.observation.Obse this.location != null && this.geoinfo == null ? this.location.getGeoJSON() : this.getGeoinfo(), this.getObservationHeading(), this.getBroadcastMessage(), - this.getLocationIsPrivate() + this.getLocationIsPrivate(), + this.getObservationData(), + observationDataSchema ); } diff --git a/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java b/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java index 41e9b940..1e64b78a 100644 --- a/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java +++ b/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java @@ -20,6 +20,7 @@ package no.nibio.vips.logic.entity.rest; import java.util.Date; +import no.nibio.vips.observationdata.ObservationDataSchema; /** * A JSON friendly, public representation of the Observation @@ -32,6 +33,8 @@ public class ObservationListItem { private String organismName, cropOrganismName; private String geoInfo; private String observationHeading; + private String observationData; + private ObservationDataSchema observationDataSchema; private Boolean broadcastMessage, locationIsPrivate; public ObservationListItem( @@ -44,7 +47,9 @@ public class ObservationListItem { String geoinfo, String observationHeading, Boolean broadcastMessage, - Boolean locationIsPrivate + Boolean locationIsPrivate, + String observationData, + ObservationDataSchema observationDataSchema ){ this.observationId = observationId; this.timeOfObservation = timeOfObservation; @@ -56,6 +61,8 @@ public class ObservationListItem { this.observationHeading = observationHeading; this.broadcastMessage = broadcastMessage; this.locationIsPrivate = locationIsPrivate; + this.observationData = observationData; + this.observationDataSchema = observationDataSchema; } /** @@ -197,4 +204,32 @@ public class ObservationListItem { public void setLocationIsPrivate(Boolean locationIsPrivate) { this.locationIsPrivate = locationIsPrivate; } + + /** + * @return the observationDataSchema + */ + public ObservationDataSchema getObservationDataSchema() { + return observationDataSchema; + } + + /** + * @param observationDataSchema the observationDataSchema to set + */ + public void setObservationDataSchema(ObservationDataSchema observationDataSchema) { + this.observationDataSchema = observationDataSchema; + } + + /** + * @return the observationData + */ + public String getObservationData() { + return observationData; + } + + /** + * @param observationData the observationData to set + */ + public void setObservationData(String observationData) { + this.observationData = observationData; + } } diff --git a/src/main/java/no/nibio/vips/logic/service/ObservationService.java b/src/main/java/no/nibio/vips/logic/service/ObservationService.java index 42cb7c3f..a448d6f7 100755 --- a/src/main/java/no/nibio/vips/logic/service/ObservationService.java +++ b/src/main/java/no/nibio/vips/logic/service/ObservationService.java @@ -59,6 +59,7 @@ import no.nibio.vips.logic.entity.Observation; import no.nibio.vips.logic.entity.PolygonService; import no.nibio.vips.logic.entity.VipsLogicRole; import no.nibio.vips.logic.entity.VipsLogicUser; +import no.nibio.vips.logic.entity.rest.ObservationListItem; import no.nibio.vips.logic.entity.rest.PointMappingResponse; import no.nibio.vips.logic.entity.rest.ReferencedPoint; import no.nibio.vips.logic.util.GISEntityUtil; @@ -155,8 +156,8 @@ public class ObservationService { String locale = localeStr != null ? localeStr : user != null ? user.getOrganizationId().getDefaultLocale() : SessionControllerGetter.getUserBean().getOrganization(organizationId).getDefaultLocale(); - return Response.ok().entity( - getFilteredObservationsFromBackend( + + List<ObservationListItem> observations = getFilteredObservationsFromBackend( organizationId, pestId, cropId, @@ -164,8 +165,12 @@ public class ObservationService { fromStr, toStr, user - ).stream().map(obs -> obs.getListItem(locale)).collect(Collectors.toList()) - ).build(); + ).stream().map(obs -> { + return obs.getListItem(locale, SessionControllerGetter.getObservationBean().getObservationDataSchema(organizationId, obs.getOrganismId())); + }).collect(Collectors.toList()); + + //o.setObservationDataSchema(SessionControllerGetter.getObservationBean().getObservationDataSchema(observer.getOrganizationId().getOrganizationId(), o.getOrganismId())); + return Response.ok().entity(observations).build(); } -- GitLab