contrib/benitlux: accept more date formats
authorAlexis Laferrière <alexis.laf@xymus.net>
Sat, 22 Aug 2015 21:34:26 +0000 (17:34 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Thu, 3 Mar 2016 19:36:40 +0000 (14:36 -0500)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

contrib/benitlux/src/benitlux_controller.nit

index f124315..806b42e 100644 (file)
@@ -96,7 +96,7 @@ class BenitluxRESTAction
                if not words.is_empty and words.first.is_empty then words.shift
 
                if words.length >= 2 and words[0] == "since" then
-                       var since = words[1]
+                       var since = words[1].std_date
 
                        var db = new DB.open(db_path)
                        var events = db.beer_events_since(since.to_sql_string)
@@ -123,3 +123,21 @@ class BenitluxRESTAction
                return response
        end
 end
+
+redef class Text
+       # Rewrite the date represented by `self` in the format expected by SQLite
+       private fun std_date: String
+       do
+               var parts = self.split("-")
+               if parts.length != 3 then return "1970-01-01"
+
+               var y = parts[0].to_s
+               var m = parts[1].to_s
+               var d = parts[2].to_s
+
+               m = "0"*(2 - m.length) + m
+               d = "0"*(2 - d.length) + d
+
+               return "{y}-{m}-{d}"
+       end
+end