From 81e738621ce3d8ed4c9525f67c521559abf6d858 Mon Sep 17 00:00:00 2001 From: Cory Dransfeldt Date: Fri, 16 May 2025 09:04:22 -0700 Subject: [PATCH] fix(update_days_read.sql): corrects reading streak function --- package-lock.json | 4 ++-- package.json | 2 +- queries/functions/update_days_read.sql | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index bdf78dc..7561714 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "coryd.dev", - "version": "5.1.4", + "version": "5.1.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coryd.dev", - "version": "5.1.4", + "version": "5.1.5", "license": "MIT", "dependencies": { "html-minifier-terser": "7.2.0", diff --git a/package.json b/package.json index 0eb90a6..0c9d794 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coryd.dev", - "version": "5.1.4", + "version": "5.1.5", "description": "The source for my personal site. Built using 11ty (and other tools).", "type": "module", "engines": { diff --git a/queries/functions/update_days_read.sql b/queries/functions/update_days_read.sql index 3af0ab0..125d2b1 100644 --- a/queries/functions/update_days_read.sql +++ b/queries/functions/update_days_read.sql @@ -1,20 +1,20 @@ CREATE OR REPLACE FUNCTION update_days_read() RETURNS TRIGGER AS $$ DECLARE - pacific_now TIMESTAMPTZ; pacific_today DATE; last_read DATE; BEGIN SELECT (NOW() AT TIME ZONE 'America/Los_Angeles')::DATE INTO pacific_today; - SELECT COALESCE(last_read_date::DATE, pacific_today - INTERVAL '1 day') INTO last_read FROM reading_streak LIMIT 1; + SELECT COALESCE(last_read_date::DATE, pacific_today - INTERVAL '1 day') INTO last_read + FROM reading_streak + LIMIT 1; IF last_read < pacific_today - INTERVAL '1 day' THEN UPDATE reading_streak - SET days_read = 0, last_read_date = NOW() AT TIME ZONE 'America/Los_Angeles' + SET days_read = 1, last_read_date = pacific_today WHERE id = 1; - END IF; - IF last_read IS DISTINCT FROM pacific_today THEN + ELSIF last_read < pacific_today THEN UPDATE reading_streak - SET days_read = days_read + 1, last_read_date = NOW() AT TIME ZONE 'America/Los_Angeles' + SET days_read = days_read + 1, last_read_date = pacific_today WHERE id = 1; END IF; RETURN NEW;