Files
gamenight/gamenight-database/src/gamenight.rs
T

35 lines
978 B
Rust

use crate::schema::gamenight;
use chrono::{DateTime, Utc};
use diesel::{Insertable, PgConnection, QueryDsl, Queryable, RunQueryDsl, insert_into};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use super::error::DatabaseError;
#[derive(Serialize, Deserialize, Debug, Insertable, Queryable)]
#[diesel(table_name = gamenight)]
pub struct Gamenight {
pub id: Uuid,
pub name: String,
pub datetime: DateTime<Utc>,
pub owner_id: Uuid,
pub location_id: Option<Uuid>,
}
pub fn gamenights(conn: &mut PgConnection) -> Result<Vec<Gamenight>, DatabaseError> {
Ok(gamenight::table.load::<Gamenight>(conn)?)
}
pub fn add_gamenight(
conn: &mut PgConnection,
gamenight: Gamenight,
) -> Result<usize, DatabaseError> {
Ok(insert_into(gamenight::table)
.values(&gamenight)
.execute(conn)?)
}
pub fn get_gamenight(conn: &mut PgConnection, id: Uuid) -> Result<Gamenight, DatabaseError> {
Ok(gamenight::table.find(id).first(conn)?)
}