From c2085966b55aed58a86db78084b884d3b552ef68 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Fri, 30 Jul 2021 10:43:48 -0400 Subject: [PATCH 1/3] fix(delete-trip): update trip status on request on delete fix ibi-group/trimet-mod-otp#302 --- app/controllers/FieldTrip.java | 43 +++++++------------- app/models/fieldtrip/ScheduledFieldTrip.java | 3 +- 2 files changed, 16 insertions(+), 30 deletions(-) diff --git a/app/controllers/FieldTrip.java b/app/controllers/FieldTrip.java index 50725a1..5719c43 100644 --- a/app/controllers/FieldTrip.java +++ b/app/controllers/FieldTrip.java @@ -291,6 +291,12 @@ public static void deleteTrip(Long id) { checkAccess(user); ScheduledFieldTrip trip = ScheduledFieldTrip.findById(id); + if (trip.requestOrder == 0) { + trip.request.outboundTripStatus = null; + } else { + trip.request.inboundTripStatus = null; + } + trip.request.save(); trip.delete(); renderJSON(id); } @@ -436,29 +442,10 @@ public static void getRequestsSummary(Integer limit) { List requests; String sql = "order by timeStamp desc"; - if(limit == null) - requests = FieldTripRequest.find(sql).fetch(); - else { - requests = FieldTripRequest.find(sql).fetch(limit); - } + if (limit == null) requests = FieldTripRequest.find(sql).fetch(); + else requests = FieldTripRequest.find(sql).fetch(limit); - Gson gson = new GsonBuilder() - .excludeFieldsWithoutExposeAnnotation() - .setExclusionStrategies(new ExclusionStrategy() { - - public boolean shouldSkipField(FieldAttributes fa) { - String name = fa.getName(); - return(name.equals("trips") || name.equals("notes") || name.equals("feedback")); - } - - public boolean shouldSkipClass(Class type) { - return false; - } - - }) - .serializeNulls() - .create(); - renderJSON(gson.toJson(requests)); + renderJSON(fieldTripSummaryWriter.toJson(requests)); } public static void setRequestStatus(long requestId, String status) { @@ -549,7 +536,10 @@ public static void setRequestDate(long requestId, @As("MM/dd/yyyy") Date date) { public static void setRequestGroupSize(long requestId, int numStudents, int numFreeStudents, int numChaperones) { TrinetUser user = checkLogin(); checkAccess(user); - + System.out.println(requestId); + System.out.println(numStudents); + System.out.println(numChaperones); + System.out.println(numFreeStudents); FieldTripRequest req = FieldTripRequest.findById(requestId); if(req != null) { req.numStudents = numStudents; @@ -657,12 +647,7 @@ public static void searchRequests(String query, String teacherValue, String scho List requests; if(date2 == null) requests = FieldTripRequest.find(query, teacherValue, schoolValue, date1).fetch(); else requests = FieldTripRequest.find(query, teacherValue, schoolValue, date1, date2).fetch(); - - Gson gson = new GsonBuilder() - .excludeFieldsWithoutExposeAnnotation() - .serializeNulls() - .create(); - renderJSON(gson.toJson(requests)); + renderJSON(fieldTripSummaryWriter.toJson(requests)); } /* Receipt Generation */ diff --git a/app/models/fieldtrip/ScheduledFieldTrip.java b/app/models/fieldtrip/ScheduledFieldTrip.java index 258ec79..3475ce6 100644 --- a/app/models/fieldtrip/ScheduledFieldTrip.java +++ b/app/models/fieldtrip/ScheduledFieldTrip.java @@ -21,7 +21,8 @@ public class ScheduledFieldTrip extends GenericModel { @ManyToOne(optional=false) public FieldTripRequest request; - + + /** 0 for outbound, 1 for inbound */ @Expose public Integer requestOrder; From 5dba8c5357af9f1c502ca2bc134b69bcdab04cff Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Wed, 4 Aug 2021 12:49:08 -0400 Subject: [PATCH 2/3] refactor: add back fieldTripSummaryWriter --- app/controllers/FieldTrip.java | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/app/controllers/FieldTrip.java b/app/controllers/FieldTrip.java index 5719c43..0f3eb36 100644 --- a/app/controllers/FieldTrip.java +++ b/app/controllers/FieldTrip.java @@ -9,13 +9,7 @@ import models.fieldtrip.GTFSTrip; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; import com.google.gson.stream.JsonReader; -import static controllers.Application.checkLogin; -import static controllers.Calltaker.checkAccess; import play.*; import play.mvc.*; @@ -26,18 +20,37 @@ import models.fieldtrip.FieldTripNote; import play.data.binding.As; -import javax.ws.rs.core.MediaType; -import com.sun.jersey.api.client.*; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.io.StringReader; import java.net.URL; import javax.net.ssl.HttpsURLConnection; -import org.apache.commons.codec.digest.DigestUtils; public class FieldTrip extends Application { + + /** + * Gson exclusion strategy designed to skip fields that could contribute to an overly large JSON response. + */ + private static final ExclusionStrategy FIELD_TRIP_EXCLUSION_STRATEGY = new ExclusionStrategy() { + public boolean shouldSkipField(FieldAttributes fa) { + String name = fa.getName(); + return(name.equals("trips") || name.equals("notes") || name.equals("feedback")); + } + public boolean shouldSkipClass(Class type) { + return false; + } + }; + + /** + * Construct Gson writer to skip large fields for the shortened {@link FieldTripRequest} summary response. + */ + private static final Gson fieldTripSummaryWriter = new GsonBuilder() + .excludeFieldsWithoutExposeAnnotation() + .setExclusionStrategies(FIELD_TRIP_EXCLUSION_STRATEGY) + .serializeNulls() + .create(); @Util public static void checkAccess(TrinetUser user) { From dbf308c28c0fe69ebb1a1316cea9812af8e6a77a Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Sep 2021 11:53:34 -0400 Subject: [PATCH 3/3] refactor(FieldTrip): Address PR comments --- app/controllers/FieldTrip.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/controllers/FieldTrip.java b/app/controllers/FieldTrip.java index 0f3eb36..135420f 100644 --- a/app/controllers/FieldTrip.java +++ b/app/controllers/FieldTrip.java @@ -33,7 +33,7 @@ public class FieldTrip extends Application { /** * Gson exclusion strategy designed to skip fields that could contribute to an overly large JSON response. */ - private static final ExclusionStrategy FIELD_TRIP_EXCLUSION_STRATEGY = new ExclusionStrategy() { + private static final ExclusionStrategy fieldTripExclusionStrategy = new ExclusionStrategy() { public boolean shouldSkipField(FieldAttributes fa) { String name = fa.getName(); return(name.equals("trips") || name.equals("notes") || name.equals("feedback")); @@ -48,7 +48,7 @@ public boolean shouldSkipClass(Class type) { */ private static final Gson fieldTripSummaryWriter = new GsonBuilder() .excludeFieldsWithoutExposeAnnotation() - .setExclusionStrategies(FIELD_TRIP_EXCLUSION_STRATEGY) + .setExclusionStrategies(fieldTripExclusionStrategy) .serializeNulls() .create(); @@ -549,10 +549,6 @@ public static void setRequestDate(long requestId, @As("MM/dd/yyyy") Date date) { public static void setRequestGroupSize(long requestId, int numStudents, int numFreeStudents, int numChaperones) { TrinetUser user = checkLogin(); checkAccess(user); - System.out.println(requestId); - System.out.println(numStudents); - System.out.println(numChaperones); - System.out.println(numFreeStudents); FieldTripRequest req = FieldTripRequest.findById(requestId); if(req != null) { req.numStudents = numStudents;