From 8566dc158079d7cf13536a41603b698568f70db6 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@bioforsk.no>
Date: Tue, 3 Nov 2015 09:54:28 +0100
Subject: [PATCH] Added forecast caching service locally available for cron
 jobs

---
 .../vips/logic/service/LogicService.java      | 25 ++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

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 04a9b89e..1709b624 100644
--- a/src/main/java/no/nibio/vips/logic/service/LogicService.java
+++ b/src/main/java/no/nibio/vips/logic/service/LogicService.java
@@ -22,6 +22,7 @@ package no.nibio.vips.logic.service;
 import com.ibm.icu.util.ULocale;
 import java.util.TimeZone;
 import de.micromata.opengis.kml.v_2_2_0.Kml;
+import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -487,7 +488,29 @@ public class LogicService {
         return Response.ok().entity(observations).build();
     }
     
-    
+    /**
+     * Service available locally for cron jobs. Most useful on test servers
+     * @return 
+     */
+    @GET
+    @Path("batch/updateforecastcaches")
+    @Produces("text/plain;charset=UTF-8")
+    public Response updateForecastCaches()
+    {
+        //System.out.println(httpServletRequest.getHeader("X-Forwarded-For"));
+        if(!ServletUtil.getClientIP(httpServletRequest).equals("127.0.0.1"))
+        {
+            return Response.status(Response.Status.UNAUTHORIZED).build();
+        }
+        Date start = new Date();
+        SessionControllerGetter.getForecastBean().updateForecastResultCacheTable();
+        SessionControllerGetter.getForecastBean().updateForecastSummaryTable(SystemTime.getSystemTime());
+        Long timeLapsed = new Date().getTime() - start.getTime();
+        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        return Response.ok().entity("Forecast caches were successfully updated with data from today (" 
+                + format.format(SystemTime.getSystemTime()) 
+                + "). Time spent=" + timeLapsed + " milliseconds.\n").build();
+    }
     
     private ManagerResource getManagerResource()
     {
-- 
GitLab