use super::models::*; use diesel::prelude::*; use diesel::result::Error; type DBConn = SqliteConnection; pub fn read_photos(conn: &DBConn) -> Result, Error> { use crate::schema::photos::dsl::*; let results = photos.load::(conn)?; Ok(results) } fn read_photos_by_path(conn: &DBConn, path: &str) -> Result, Error> { use crate::schema::photos::dsl::*; let results = photos.filter(path.eq(path)).load::(conn)?; Ok(results) } pub fn read_photo_by_path(conn: &DBConn, path: &str) -> Result, Error> { use crate::schema::photos::dsl::*; let results = photos.filter(path.eq(path)).limit(1).load::(conn)?; Ok(results.first().cloned()) } pub fn read_photo_by_id(conn: &DBConn, id: i32) -> Result, Error> { use crate::schema::photos::dsl::*; let results = photos.filter(id.eq(id)).limit(1).load::(conn)?; Ok(results.first().cloned()) } pub fn create_photo(conn: &DBConn, new_photo: NewPhoto) -> Result, Error> { use super::schema::photos; diesel::insert_into(photos::table) .values(&new_photo) .execute(conn)?; read_photo_by_path(conn, &new_photo.path) } pub fn update_photo() { todo!() }