From e6f5f636b676b9faa7987eb77dd435969fa51b4f Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 14 May 2024 09:34:55 +0000 Subject: feat(database): demo counter --- src/database.gleam | 78 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 35 deletions(-) (limited to 'src/database.gleam') diff --git a/src/database.gleam b/src/database.gleam index 8e8d320..34400ce 100644 --- a/src/database.gleam +++ b/src/database.gleam @@ -49,42 +49,50 @@ pub fn add_counter(connection, name) { } pub fn get_counter(connection, name) { - let assert Ok(_) = - sqlight.query( - "insert or ignore into tb_count (name) values (?);", - with: [sqlight.text(name)], - on: connection, - expecting: dynamic.optional(dynamic.int), - ) - let assert Ok(_) = - sqlight.query( - "update tb_count set num = num + 1, updated_at = ? where name = ?;", - with: [sqlight.text(birl.to_iso8601(birl.utc_now())), sqlight.text(name)], - on: connection, - expecting: dynamic.int, - ) + case name { + "demo" -> Counter("demo", 0_123_456_789, "", "") + _ -> { + let assert Ok(_) = + sqlight.query( + "insert or ignore into tb_count (name) values (?);", + with: [sqlight.text(name)], + on: connection, + expecting: dynamic.optional(dynamic.int), + ) + let assert Ok(_) = + sqlight.query( + "update tb_count set num = num + 1, updated_at = ? where name = ?;", + with: [ + sqlight.text(birl.to_iso8601(birl.utc_now())), + sqlight.text(name), + ], + on: connection, + expecting: dynamic.int, + ) - case - sqlight.query( - "select name, num, created_at, updated_at from tb_count where name = ?;", - with: [sqlight.text(name)], - on: connection, - expecting: dynamic.tuple4( - dynamic.string, - dynamic.int, - dynamic.string, - dynamic.string, - ), - ) - { - Ok([first_element]) -> { - Counter( - first_element.0, - first_element.1, - first_element.2, - first_element.3, - ) + case + sqlight.query( + "select name, num, created_at, updated_at from tb_count where name = ?;", + with: [sqlight.text(name)], + on: connection, + expecting: dynamic.tuple4( + dynamic.string, + dynamic.int, + dynamic.string, + dynamic.string, + ), + ) + { + Ok([first_element]) -> { + Counter( + first_element.0, + first_element.1, + first_element.2, + first_element.3, + ) + } + _ -> Counter(name, 0, "", "") + } } - _ -> Counter(name, 0, "", "") } } -- cgit v1.2.3