From f0abb6fdb0c17538dfe75754ccc6760037fa3c16 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20Laferri=C3=A8re?= Date: Wed, 11 May 2016 09:34:19 -0400 Subject: [PATCH] contrib/benitlux: standardize dates on the server-side MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexis Laferrière --- contrib/benitlux/src/benitlux_db.nit | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/contrib/benitlux/src/benitlux_db.nit b/contrib/benitlux/src/benitlux_db.nit index 81ec6bf..c899ede 100644 --- a/contrib/benitlux/src/benitlux_db.nit +++ b/contrib/benitlux/src/benitlux_db.nit @@ -85,7 +85,7 @@ class BenitluxDB last_weekday = "date('now', 'weekday 6', '-7 day')" else last_weekday = "date('now', '-1 day')" - return beer_events_since(last_weekday) + return beer_events_since_sql(last_weekday) end # Build and return a `BeerEvents` for today compared to `prev_day` @@ -93,26 +93,35 @@ class BenitluxDB # Return `null` on error fun beer_events_since(prev_day: String): nullable BeerEvents do + prev_day = prev_day.to_sql_date_string + return beer_events_since_sql("date({prev_day})") + end + + # `BeerEvents` since the SQLite formatted date command `sql_date` + # + # Return `null` on error + private fun beer_events_since_sql(sql_date: String): nullable BeerEvents + do var events = new BeerEvents # New var stmt = select("ROWID, name, desc FROM beers WHERE " + "ROWID IN (SELECT beer FROM daily WHERE day=(SELECT MAX(day) FROM daily)) AND " + - "NOT ROWID IN (SELECT beer FROM daily WHERE date(day) = date({prev_day}))") + "NOT ROWID IN (SELECT beer FROM daily WHERE date(day) = {sql_date})") if stmt == null then return null for row in stmt do events.new_beers.add row.to_beer # Gone stmt = select("ROWID, name, desc FROM beers WHERE " + "NOT ROWID IN (SELECT beer FROM daily WHERE day=(SELECT MAX(day) FROM daily)) AND " + - "ROWID IN (SELECT beer FROM daily WHERE date(day) = date({prev_day}))") + "ROWID IN (SELECT beer FROM daily WHERE date(day) = {sql_date})") if stmt == null then return null for row in stmt do events.gone_beers.add row.to_beer # Fix stmt = select("ROWID, name, desc FROM beers WHERE " + "ROWID IN (SELECT beer FROM daily WHERE day=(SELECT MAX(day) FROM daily)) AND " + - "ROWID IN (SELECT beer FROM daily WHERE date(day) = date({prev_day}))") + "ROWID IN (SELECT beer FROM daily WHERE date(day) = {sql_date})") if stmt == null then return null for row in stmt do events.fix_beers.add row.to_beer -- 1.7.9.5