This commit is contained in:
Simon
2025-08-20 11:59:55 +00:00
parent 6dd63ae620
commit 0ba1c62daa
6 changed files with 418 additions and 5 deletions

View File

@@ -14,6 +14,7 @@ pub fn get_video(conn: &mut SqliteConnection, video_id: String) -> Result<Option
}
}
pub fn insert_video(conn: &mut SqliteConnection, new_id: &str, new_url: &str) -> Result<usize, diesel::result::Error> {
use crate::schema::videos::dsl::*;
diesel::insert_into(videos).values(DBVideo{
@@ -27,3 +28,24 @@ pub fn delete_video(conn: &mut SqliteConnection, video_id: String) -> Result<usi
diesel::delete(videos.filter(id.eq(video_id))).execute(conn)
}
pub fn has_table(conn: &mut SqliteConnection, table_name: &str) -> Result<bool, diesel::result::Error> {
use diesel::sql_query;
use diesel::sql_types::Text;
#[derive(QueryableByName)]
struct TableName {
#[sql_type = "Text"]
name: String,
}
let query = "SELECT name FROM sqlite_master WHERE type='table' AND name = ?1";
let result = sql_query(query)
.bind::<Text, _>(table_name)
.load::<TableName>(conn)?;
Ok(!result.is_empty())
}
pub fn create_table(conn: &mut SqliteConnection, create_sql: &str) -> Result<(), diesel::result::Error> {
use diesel::sql_query;
sql_query(create_sql).execute(conn)?;
Ok(())
}