32 lines
746 B
Rust
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(())
|
|
}
|