tenebrous-sheets/src/db.rs

32 lines
746 B
Rust

use crate::models::characters::{CharacterEntry, NewCharacter};
use diesel::prelude::*;
#[database("tenebrous_db")]
pub(crate) struct TenebrousDbConn(diesel::SqliteConnection);
pub(crate) fn load_character(
conn: TenebrousDbConn,
character_id: i32,
) -> QueryResult<Option<CharacterEntry>> {
use crate::schema::characters::dsl::*;
characters
.filter(id.eq(character_id))
.limit(1)
.first::<CharacterEntry>(&*conn)
.optional()
}
pub(crate) fn insert_character(
conn: TenebrousDbConn,
new_character: &NewCharacter,
) -> QueryResult<()> {
use crate::schema::characters;
diesel::insert_into(characters::table)
.values(new_character)
.execute(&*conn)?;
Ok(())
}