diff options
author | Ilion Beyst <ilion.beyst@gmail.com> | 2021-12-30 11:45:59 +0100 |
---|---|---|
committer | Ilion Beyst <ilion.beyst@gmail.com> | 2021-12-30 11:45:59 +0100 |
commit | 3edf5d60f54bfd0cd2c818e5fb1ca133e324325d (patch) | |
tree | 9b8bd057e3e27c9e2488957f02ffc8de4ed4c438 /backend/src/db/sessions.rs | |
parent | 71ee6c99e963d96286cae8d0bfc2f20a9c9c920b (diff) | |
download | planetwars.dev-3edf5d60f54bfd0cd2c818e5fb1ca133e324325d.tar.xz planetwars.dev-3edf5d60f54bfd0cd2c818e5fb1ca133e324325d.zip |
rename to planetwars-server
Diffstat (limited to 'backend/src/db/sessions.rs')
-rw-r--r-- | backend/src/db/sessions.rs | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/backend/src/db/sessions.rs b/backend/src/db/sessions.rs deleted file mode 100644 index 96f3926..0000000 --- a/backend/src/db/sessions.rs +++ /dev/null @@ -1,46 +0,0 @@ -use super::users::User; -use crate::schema::{sessions, users}; -use base64; -use diesel::PgConnection; -use diesel::{insert_into, prelude::*, Insertable, RunQueryDsl}; -use rand::{self, Rng}; - -#[derive(Insertable)] -#[table_name = "sessions"] -struct NewSession { - token: String, - user_id: i32, -} - -#[derive(Queryable, Debug, PartialEq)] -pub struct Session { - pub id: i32, - pub user_id: i32, - pub token: String, -} - -pub fn create_session(user: &User, conn: &PgConnection) -> Session { - let new_session = NewSession { - token: gen_session_token(), - user_id: user.id, - }; - let session = insert_into(sessions::table) - .values(&new_session) - .get_result::<Session>(conn) - .unwrap(); - - return session; -} - -pub fn find_user_by_session(token: &str, conn: &PgConnection) -> QueryResult<(Session, User)> { - sessions::table - .inner_join(users::table) - .filter(sessions::token.eq(&token)) - .first::<(Session, User)>(conn) -} - -pub fn gen_session_token() -> String { - let mut rng = rand::thread_rng(); - let token: [u8; 32] = rng.gen(); - return base64::encode(&token); -} |