summaryrefslogtreecommitdiff
path: root/src/db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/db.rs b/src/db.rs
index 6014db9..3f94ff2 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -1,15 +1,14 @@
use crate::error::Error;
use crate::models;
-use base64;
+use diesel::dsl::select;
+use diesel::dsl::exists;
use diesel::connection::Connection;
use diesel::pg::PgConnection;
use diesel::ExpressionMethods;
use diesel::QueryDsl;
use diesel::RunQueryDsl;
-use rand;
-use rand::Rng;
-pub const COST: u32 = 12;
+pub const COST: u32 = 10;
pub fn create_config(conn: &PgConnection, config: &models::Config) -> Result<(), Error> {
use crate::schema::config;
@@ -24,6 +23,12 @@ pub fn create_config(conn: &PgConnection, config: &models::Config) -> Result<(),
})
}
+pub fn get_config(conn: &PgConnection) -> Result<models::Config, Error> {
+ use crate::schema::config;
+ config::table.get_result::<models::Config>(conn)
+ .map_err(From::from)
+}
+
pub fn adduser(conn: &PgConnection, username: &str, password: &str) -> Result<(), Error> {
use crate::schema::users;
@@ -54,3 +59,14 @@ pub fn authenticate(
Err(Error::NotFound)
}
}
+
+pub fn user_exists(
+ conn: &PgConnection,
+ username: &str) -> Result<bool, Error> {
+ use crate::schema::users;
+
+ let result = select(exists(users::table.filter(users::username.eq(username))))
+ .get_result(conn)
+ .map_err(|err| err)?;
+ Ok(result)
+}