mirror of
https://git.nadeko.net/Fijxu/invidious.git
synced 2025-12-19 19:38:51 +00:00
Move DB queries related to playlists in a separate module (2/3)
This commit is contained in:
@@ -127,7 +127,7 @@ module Invidious::Routes::API::V1::Authenticated
|
||||
env.response.content_type = "application/json"
|
||||
user = env.get("user").as(User)
|
||||
|
||||
playlists = PG_DB.query_all("SELECT * FROM playlists WHERE author = $1", user.email, as: InvidiousPlaylist)
|
||||
playlists = Invidious::Database::Playlists.select_all(author: user.email)
|
||||
|
||||
JSON.build do |json|
|
||||
json.array do
|
||||
@@ -153,7 +153,7 @@ module Invidious::Routes::API::V1::Authenticated
|
||||
return error_json(400, "Invalid privacy setting.")
|
||||
end
|
||||
|
||||
if PG_DB.query_one("SELECT count(*) FROM playlists WHERE author = $1", user.email, as: Int64) >= 100
|
||||
if Invidious::Database::Playlists.count_owned_by(user.email) >= 100
|
||||
return error_json(400, "User cannot have more than 100 playlists.")
|
||||
end
|
||||
|
||||
@@ -172,9 +172,12 @@ module Invidious::Routes::API::V1::Authenticated
|
||||
env.response.content_type = "application/json"
|
||||
user = env.get("user").as(User)
|
||||
|
||||
plid = env.params.url["plid"]
|
||||
plid = env.params.url["plid"]?
|
||||
if !plid || plid.empty?
|
||||
return error_json(400, "A playlist ID is required")
|
||||
end
|
||||
|
||||
playlist = PG_DB.query_one?("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
playlist = Invidious::Database::Playlists.select(id: plid)
|
||||
if !playlist || playlist.author != user.email && playlist.privacy.private?
|
||||
return error_json(404, "Playlist does not exist.")
|
||||
end
|
||||
@@ -195,7 +198,8 @@ module Invidious::Routes::API::V1::Authenticated
|
||||
updated = playlist.updated
|
||||
end
|
||||
|
||||
PG_DB.exec("UPDATE playlists SET title = $1, privacy = $2, description = $3, updated = $4 WHERE id = $5", title, privacy, description, updated, plid)
|
||||
Invidious::Database::Playlists.update(plid, title, privacy, description, updated)
|
||||
|
||||
env.response.status_code = 204
|
||||
end
|
||||
|
||||
@@ -207,7 +211,7 @@ module Invidious::Routes::API::V1::Authenticated
|
||||
|
||||
plid = env.params.url["plid"]
|
||||
|
||||
playlist = PG_DB.query_one?("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
playlist = Invidious::Database::Playlists.select(id: plid)
|
||||
if !playlist || playlist.author != user.email && playlist.privacy.private?
|
||||
return error_json(404, "Playlist does not exist.")
|
||||
end
|
||||
@@ -229,7 +233,7 @@ module Invidious::Routes::API::V1::Authenticated
|
||||
|
||||
plid = env.params.url["plid"]
|
||||
|
||||
playlist = PG_DB.query_one?("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
playlist = Invidious::Database::Playlists.select(id: plid)
|
||||
if !playlist || playlist.author != user.email && playlist.privacy.private?
|
||||
return error_json(404, "Playlist does not exist.")
|
||||
end
|
||||
@@ -285,7 +289,7 @@ module Invidious::Routes::API::V1::Authenticated
|
||||
plid = env.params.url["plid"]
|
||||
index = env.params.url["index"].to_i64(16)
|
||||
|
||||
playlist = PG_DB.query_one?("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
playlist = Invidious::Database::Playlists.select(id: plid)
|
||||
if !playlist || playlist.author != user.email && playlist.privacy.private?
|
||||
return error_json(404, "Playlist does not exist.")
|
||||
end
|
||||
|
||||
@@ -264,7 +264,7 @@ module Invidious::Routes::Feeds
|
||||
path = env.request.path
|
||||
|
||||
if plid.starts_with? "IV"
|
||||
if playlist = PG_DB.query_one?("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
if playlist = Invidious::Database::Playlists.select(id: plid)
|
||||
videos = get_playlist_videos(PG_DB, playlist, offset: 0, locale: locale)
|
||||
|
||||
return XML.build(indent: " ", encoding: "UTF-8") do |xml|
|
||||
@@ -364,7 +364,7 @@ module Invidious::Routes::Feeds
|
||||
if ucid = HTTP::Params.parse(URI.parse(topic).query.not_nil!)["channel_id"]?
|
||||
PG_DB.exec("UPDATE channels SET subscribed = $1 WHERE id = $2", Time.utc, ucid)
|
||||
elsif plid = HTTP::Params.parse(URI.parse(topic).query.not_nil!)["playlist_id"]?
|
||||
PG_DB.exec("UPDATE playlists SET subscribed = $1 WHERE id = $2", Time.utc, ucid)
|
||||
Invidious::Database::Playlists.update_subscription_time(plid)
|
||||
else
|
||||
haltf env, status_code: 400
|
||||
end
|
||||
|
||||
@@ -46,7 +46,7 @@ module Invidious::Routes::Playlists
|
||||
return error_template(400, "Invalid privacy setting.")
|
||||
end
|
||||
|
||||
if PG_DB.query_one("SELECT count(*) FROM playlists WHERE author = $1", user.email, as: Int64) >= 100
|
||||
if Invidious::Database::Playlists.count_owned_by(user.email) >= 100
|
||||
return error_template(400, "User cannot have more than 100 playlists.")
|
||||
end
|
||||
|
||||
@@ -85,7 +85,11 @@ module Invidious::Routes::Playlists
|
||||
sid = sid.as(String)
|
||||
|
||||
plid = env.params.query["list"]?
|
||||
playlist = PG_DB.query_one?("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
if !plid || plid.empty?
|
||||
return error_template(400, "A playlist ID is required")
|
||||
end
|
||||
|
||||
playlist = Invidious::Database::Playlists.select(id: plid)
|
||||
if !playlist || playlist.author != user.email
|
||||
return env.redirect referer
|
||||
end
|
||||
@@ -117,7 +121,7 @@ module Invidious::Routes::Playlists
|
||||
return error_template(400, ex)
|
||||
end
|
||||
|
||||
playlist = PG_DB.query_one?("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
playlist = Invidious::Database::Playlists.select(id: plid)
|
||||
if !playlist || playlist.author != user.email
|
||||
return env.redirect referer
|
||||
end
|
||||
@@ -148,7 +152,7 @@ module Invidious::Routes::Playlists
|
||||
page ||= 1
|
||||
|
||||
begin
|
||||
playlist = PG_DB.query_one("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
playlist = Invidious::Database::Playlists.select(id: plid, raise_on_fail: true)
|
||||
if !playlist || playlist.author != user.email
|
||||
return env.redirect referer
|
||||
end
|
||||
@@ -189,7 +193,7 @@ module Invidious::Routes::Playlists
|
||||
return error_template(400, ex)
|
||||
end
|
||||
|
||||
playlist = PG_DB.query_one?("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
playlist = Invidious::Database::Playlists.select(id: plid)
|
||||
if !playlist || playlist.author != user.email
|
||||
return env.redirect referer
|
||||
end
|
||||
@@ -206,7 +210,7 @@ module Invidious::Routes::Playlists
|
||||
updated = playlist.updated
|
||||
end
|
||||
|
||||
PG_DB.exec("UPDATE playlists SET title = $1, privacy = $2, description = $3, updated = $4 WHERE id = $5", title, privacy, description, updated, plid)
|
||||
Invidious::Database::Playlists.update(plid, title, privacy, description, updated)
|
||||
|
||||
env.redirect "/playlist?list=#{plid}"
|
||||
end
|
||||
@@ -232,7 +236,7 @@ module Invidious::Routes::Playlists
|
||||
page ||= 1
|
||||
|
||||
begin
|
||||
playlist = PG_DB.query_one("SELECT * FROM playlists WHERE id = $1", plid, as: InvidiousPlaylist)
|
||||
playlist = Invidious::Database::Playlists.select(id: plid, raise_on_fail: true)
|
||||
if !playlist || playlist.author != user.email
|
||||
return env.redirect referer
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user