fix warning while persisting tracks
All checks were successful
All checks were successful
This commit is contained in:
@@ -103,14 +103,14 @@ async fn persistence(
|
|||||||
|
|
||||||
db::track::insert_guild(&state.pool, db::track::Guild::new(guild_id.to_string()))
|
db::track::insert_guild(&state.pool, db::track::Guild::new(guild_id.to_string()))
|
||||||
.await
|
.await
|
||||||
.expect("failed to insert guild: {e}");
|
.context("failed to insert guild")?;
|
||||||
|
|
||||||
db::track::insert_user(
|
db::track::insert_user(
|
||||||
&state.pool,
|
&state.pool,
|
||||||
db::track::User::new(user_id.to_string(), author_name, author_global_name),
|
db::track::User::new(user_id.to_string(), author_name, author_global_name),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.expect("failed to insert user: {e}");
|
.context("failed to insert user")?;
|
||||||
|
|
||||||
let track_id = db::track::insert_track(
|
let track_id = db::track::insert_track(
|
||||||
&state.pool,
|
&state.pool,
|
||||||
@@ -123,13 +123,14 @@ async fn persistence(
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.context("failed to insert track: {e}")?;
|
.context("failed to insert track")?;
|
||||||
|
|
||||||
db::track::insert_query(
|
db::track::insert_query(
|
||||||
&state.pool,
|
&state.pool,
|
||||||
db::track::Query::new(user_id.to_string(), guild_id.to_string(), track_id),
|
db::track::Query::new(user_id.to_string(), guild_id.to_string(), track_id),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.context("failed to insert track: {e}")?;
|
.context("failed to insert query")?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,40 +38,26 @@ pub(crate) async fn insert_track(
|
|||||||
) -> Result<i64, sqlx::Error> {
|
) -> Result<i64, sqlx::Error> {
|
||||||
let query = r#"
|
let query = r#"
|
||||||
INSERT INTO tracks (url, title, channel, duration, thumbnail, updated)
|
INSERT INTO tracks (url, title, channel, duration, thumbnail, updated)
|
||||||
VALUES ($1, $2, $3, $4, $5, $6)
|
VALUES (?, ?, ?, ?, ?, ?)
|
||||||
ON CONFLICT (url) DO UPDATE SET
|
ON CONFLICT (url) DO UPDATE SET
|
||||||
title = excluded.title,
|
title = EXCLUDED.title,
|
||||||
channel = excluded.channel,
|
channel = EXCLUDED.channel,
|
||||||
duration = excluded.duration,
|
duration = EXCLUDED.duration,
|
||||||
thumbnail = excluded.thumbnail,
|
thumbnail = EXCLUDED.thumbnail,
|
||||||
updated = excluded.updated
|
updated = EXCLUDED.updated
|
||||||
|
RETURNING id
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
let res = sqlx::query(query)
|
let id = sqlx::query_scalar(query)
|
||||||
.bind(&track.url)
|
.bind(&track.url)
|
||||||
.bind(track.title)
|
.bind(track.title)
|
||||||
.bind(track.channel)
|
.bind(track.channel)
|
||||||
.bind(track.duration)
|
.bind(track.duration)
|
||||||
.bind(track.thumbnail)
|
.bind(track.thumbnail)
|
||||||
.bind(track.updated)
|
.bind(track.updated)
|
||||||
.execute(pool)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
let id = res.last_insert_rowid();
|
|
||||||
|
|
||||||
// the track id is 0 if we only updated a row
|
|
||||||
if id == 0 {
|
|
||||||
let track: Track = sqlx::query_as(
|
|
||||||
r#"
|
|
||||||
SELECT id FROM tracks
|
|
||||||
WHERE url = $1
|
|
||||||
"#,
|
|
||||||
)
|
|
||||||
.bind(track.url)
|
|
||||||
.fetch_one(pool)
|
.fetch_one(pool)
|
||||||
.await?;
|
.await?;
|
||||||
return Ok(track.id);
|
|
||||||
}
|
|
||||||
Ok(id)
|
Ok(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,11 +83,11 @@ impl User {
|
|||||||
pub(crate) async fn insert_user(pool: &sqlx::SqlitePool, user: User) -> Result<(), sqlx::Error> {
|
pub(crate) async fn insert_user(pool: &sqlx::SqlitePool, user: User) -> Result<(), sqlx::Error> {
|
||||||
let query = r#"
|
let query = r#"
|
||||||
INSERT INTO users (id, name, global_name, updated)
|
INSERT INTO users (id, name, global_name, updated)
|
||||||
VALUES ($1, $2, $3, $4)
|
VALUES (?, ?, ?, ?)
|
||||||
ON CONFLICT (id) DO UPDATE SET
|
ON CONFLICT (id) DO UPDATE SET
|
||||||
name = excluded.name,
|
name = EXCLUDED.name,
|
||||||
global_name = excluded.global_name,
|
global_name = EXCLUDED.global_name,
|
||||||
updated = excluded.updated
|
updated = EXCLUDED.updated
|
||||||
"#;
|
"#;
|
||||||
sqlx::query(query)
|
sqlx::query(query)
|
||||||
.bind(user.id)
|
.bind(user.id)
|
||||||
@@ -138,7 +124,7 @@ impl Query {
|
|||||||
pub(crate) async fn insert_query(pool: &sqlx::SqlitePool, q: Query) -> Result<i64, sqlx::Error> {
|
pub(crate) async fn insert_query(pool: &sqlx::SqlitePool, q: Query) -> Result<i64, sqlx::Error> {
|
||||||
let query = r#"
|
let query = r#"
|
||||||
INSERT INTO queries (user_id, guild_id, track_id, updated)
|
INSERT INTO queries (user_id, guild_id, track_id, updated)
|
||||||
VALUES ($1, $2, $3, $4)
|
VALUES (?, ?, ?, ?)
|
||||||
"#;
|
"#;
|
||||||
let res = sqlx::query(query)
|
let res = sqlx::query(query)
|
||||||
.bind(q.user_id)
|
.bind(q.user_id)
|
||||||
@@ -168,9 +154,9 @@ impl Guild {
|
|||||||
pub(crate) async fn insert_guild(pool: &sqlx::SqlitePool, guild: Guild) -> Result<(), sqlx::Error> {
|
pub(crate) async fn insert_guild(pool: &sqlx::SqlitePool, guild: Guild) -> Result<(), sqlx::Error> {
|
||||||
let query = r#"
|
let query = r#"
|
||||||
INSERT INTO guilds (id, updated)
|
INSERT INTO guilds (id, updated)
|
||||||
VALUES ($1, $2)
|
VALUES (?, ?)
|
||||||
ON CONFLICT (id) DO UPDATE SET
|
ON CONFLICT (id) DO UPDATE SET
|
||||||
updated = excluded.updated
|
updated = EXCLUDED.updated
|
||||||
"#;
|
"#;
|
||||||
sqlx::query(query)
|
sqlx::query(query)
|
||||||
.bind(guild.id)
|
.bind(guild.id)
|
||||||
|
|||||||
Reference in New Issue
Block a user