Move DB queries related to 'annotations' in a separate module

This commit is contained in:
Samantaz Fox 2021-12-06 17:24:49 +01:00
parent 85cf27119c
commit 914cfbd953
No known key found for this signature in database
GPG Key ID: F42821059186176E
3 changed files with 26 additions and 2 deletions

View File

@ -0,0 +1,24 @@
require "./base.cr"
module Invidious::Database::Annotations
extend self
def insert(id : String, annotations : String)
request = <<-SQL
INSERT INTO annotations
VALUES ($1, $2)
ON CONFLICT DO NOTHING
SQL
PG_DB.exec(request, id, annotations)
end
def select(id : String) : Annotation?
request = <<-SQL
SELECT * FROM annotations
WHERE id = $1
SQL
return PG_DB.query_one?(request, id, as: Annotation)
end
end

View File

@ -183,7 +183,7 @@ def cache_annotation(db, id, annotations)
end end
end end
db.exec("INSERT INTO annotations VALUES ($1, $2) ON CONFLICT DO NOTHING", id, annotations) if has_legacy_annotations Invidious::Database::Annotations.insert(id, annotations) if has_legacy_annotations
end end
def create_notification_stream(env, topics, connection_channel) def create_notification_stream(env, topics, connection_channel)

View File

@ -239,7 +239,7 @@ module Invidious::Routes::API::V1::Videos
case source case source
when "archive" when "archive"
if CONFIG.cache_annotations && (cached_annotation = PG_DB.query_one?("SELECT * FROM annotations WHERE id = $1", id, as: Annotation)) if CONFIG.cache_annotations && (cached_annotation = Invidious::Database::Annotations.select(id))
annotations = cached_annotation.annotations annotations = cached_annotation.annotations
else else
index = CHARS_SAFE.index(id[0]).not_nil!.to_s.rjust(2, '0') index = CHARS_SAFE.index(id[0]).not_nil!.to_s.rjust(2, '0')