fix(update_days_read.sql): corrects reading streak function

This commit is contained in:
Cory Dransfeldt 2025-05-16 09:04:22 -07:00
parent 61af1e0f23
commit 81e738621c
No known key found for this signature in database
3 changed files with 9 additions and 9 deletions

4
package-lock.json generated
View file

@ -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",

View file

@ -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": {

View file

@ -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;