implement db functions to manipulate media table
This commit is contained in:
parent
ed211f2d72
commit
827a5022d1
44
src/db.rs
44
src/db.rs
@ -216,4 +216,48 @@ impl DB {
|
||||
|
||||
Ok(new_event)
|
||||
}
|
||||
|
||||
pub async fn get_media(
|
||||
&mut self,
|
||||
literal: &str,
|
||||
) -> Result<Vec<Media>, Box<dyn std::error::Error>> {
|
||||
use self::schema::media::dsl::*;
|
||||
let conn = &mut self.pool.get().await.unwrap();
|
||||
|
||||
let media_items = media.filter(token.eq(literal)).load::<Media>(conn).await?;
|
||||
|
||||
Ok(media_items)
|
||||
}
|
||||
|
||||
pub async fn drop_media(&mut self, literal: &str) -> Result<usize, Box<dyn std::error::Error>> {
|
||||
use self::schema::media::dsl::*;
|
||||
let conn = &mut self.pool.get().await.unwrap();
|
||||
|
||||
let deleted_count = diesel::delete(media.filter(token.eq(literal)))
|
||||
.execute(conn)
|
||||
.await?;
|
||||
|
||||
Ok(deleted_count)
|
||||
}
|
||||
|
||||
pub async fn add_media(
|
||||
&mut self,
|
||||
literal: &str,
|
||||
mediatype: String,
|
||||
fileid: i64,
|
||||
) -> Result<Media, Box<dyn std::error::Error>> {
|
||||
use self::schema::media::dsl::*;
|
||||
let conn = &mut self.pool.get().await.unwrap();
|
||||
|
||||
let new_media = diesel::insert_into(media)
|
||||
.values((
|
||||
token.eq(literal),
|
||||
media_type.eq(mediatype),
|
||||
file_id.eq(fileid),
|
||||
))
|
||||
.get_result::<Media>(conn)
|
||||
.await?;
|
||||
|
||||
Ok(new_media)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user