DB: playlists: make that 'insert' never raises

This commit is contained in:
Samantaz Fox 2022-01-07 18:05:59 +01:00
parent c78f84d5c6
commit 714a001332
No known key found for this signature in database
GPG Key ID: F42821059186176E
2 changed files with 6 additions and 18 deletions

View File

@ -94,18 +94,14 @@ module Invidious::Database::Playlists
# Salect # Salect
# ------------------- # -------------------
def select(*, id : String, raise_on_fail : Bool = false) : InvidiousPlaylist? def select(*, id : String) : InvidiousPlaylist?
request = <<-SQL request = <<-SQL
SELECT * FROM playlists SELECT * FROM playlists
WHERE id = $1 WHERE id = $1
SQL SQL
if raise_on_fail
return PG_DB.query_one(request, id, as: InvidiousPlaylist)
else
return PG_DB.query_one?(request, id, as: InvidiousPlaylist) return PG_DB.query_one?(request, id, as: InvidiousPlaylist)
end end
end
def select_all(*, author : String) : Array(InvidiousPlaylist) def select_all(*, author : String) : Array(InvidiousPlaylist)
request = <<-SQL request = <<-SQL

View File

@ -151,14 +151,10 @@ module Invidious::Routes::Playlists
page = env.params.query["page"]?.try &.to_i? page = env.params.query["page"]?.try &.to_i?
page ||= 1 page ||= 1
begin playlist = Invidious::Database::Playlists.select(id: plid)
playlist = Invidious::Database::Playlists.select(id: plid, raise_on_fail: true)
if !playlist || playlist.author != user.email if !playlist || playlist.author != user.email
return env.redirect referer return env.redirect referer
end end
rescue ex
return env.redirect referer
end
begin begin
videos = get_playlist_videos(playlist, offset: (page - 1) * 100, locale: locale) videos = get_playlist_videos(playlist, offset: (page - 1) * 100, locale: locale)
@ -235,14 +231,10 @@ module Invidious::Routes::Playlists
page = env.params.query["page"]?.try &.to_i? page = env.params.query["page"]?.try &.to_i?
page ||= 1 page ||= 1
begin playlist = Invidious::Database::Playlists.select(id: plid)
playlist = Invidious::Database::Playlists.select(id: plid, raise_on_fail: true)
if !playlist || playlist.author != user.email if !playlist || playlist.author != user.email
return env.redirect referer return env.redirect referer
end end
rescue ex
return env.redirect referer
end
query = env.params.query["q"]? query = env.params.query["q"]?
if query if query