more data access functions
This commit is contained in:
parent
6332ea66d9
commit
30c97ce732
@ -1,17 +1,28 @@
|
||||
use std::default::Default;
|
||||
|
||||
use diesel::r2d2;
|
||||
use diesel::prelude::*;
|
||||
use diesel::pg::PgConnection;
|
||||
|
||||
use libpso::character::settings;
|
||||
use crate::models::*;
|
||||
|
||||
type ConnectionPool = r2d2::Pool<r2d2::ConnectionManager<PgConnection>>;
|
||||
|
||||
pub trait DataAccess {
|
||||
fn get_user_by_id(&self, id: u32) -> Option<UserAccount> {
|
||||
fn get_user_by_id(&self, _id: u32) -> Option<UserAccount> {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
fn get_user_by_name(&self, username: String) -> Option<UserAccount> {
|
||||
fn get_user_by_name(&self, _username: String) -> Option<UserAccount> {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
fn get_user_settings_by_user(&self, _user: &UserAccount) -> Option<UserSettings> {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
fn create_user_settings_by_user(&self, _user: &UserAccount) -> UserSettings {
|
||||
unimplemented!();
|
||||
}
|
||||
}
|
||||
@ -40,9 +51,24 @@ impl DataAccess for DBAccess {
|
||||
})
|
||||
.unwrap_or(None)
|
||||
}
|
||||
|
||||
fn get_user_settings_by_user(&self, user: &UserAccount) -> Option<UserSettings> {
|
||||
self.connection_pool.get()
|
||||
.ok()
|
||||
.and_then(|conn| {
|
||||
UserSettings::belonging_to(user).first::<UserSettings>(&conn).ok()
|
||||
})
|
||||
}
|
||||
|
||||
fn create_user_settings_by_user(&self, user: &UserAccount) -> UserSettings {
|
||||
use elseware::schema::user_settings::dsl::user_settings;
|
||||
self.connection_pool.get()
|
||||
.map(|conn| {
|
||||
let new_settings = NewUserSettings {
|
||||
user_id: user.id,
|
||||
settings: EUserSettings(settings::UserSettings::default())
|
||||
};
|
||||
diesel::insert_into(user_settings).values(&new_settings).get_result(&conn).unwrap()
|
||||
}).unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*impl DataAccess for DatabaseAccess {
|
||||
}*/
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user