feat: added logout POST route

This commit is contained in:
Jef Roosens 2025-02-23 13:05:33 +01:00
parent 2f8181491a
commit 166ae172d0
Signed by: Jef Roosens
GPG key ID: 21FD3D77D56BAF49
2 changed files with 66 additions and 3 deletions

View file

@ -23,12 +23,34 @@ impl Session {
.get_result(&mut pool.get()?)?)
}
pub fn user_from_id(pool: &DbPool, id: i64) -> DbResult<Option<super::user::User>> {
pub fn user_from_id(pool: &DbPool, id: i64) -> DbResult<super::user::User> {
Ok(sessions::dsl::sessions
.inner_join(users::table)
.filter(sessions::id.eq(id))
.select(User::as_select())
.get_result(&mut pool.get()?)?)
}
pub fn user(&self, pool: &DbPool) -> DbResult<super::user::User> {
Self::user_from_id(pool, self.id)
}
pub fn by_id(pool: &DbPool, id: i64) -> DbResult<Option<Self>> {
Ok(sessions::dsl::sessions
.find(id)
.get_result(&mut pool.get()?)
.optional()?)
}
pub fn remove(self, pool: &DbPool) -> DbResult<bool> {
Self::remove_by_id(pool, self.id)
}
pub fn remove_by_id(pool: &DbPool, id: i64) -> DbResult<bool> {
Ok(
diesel::delete(sessions::dsl::sessions.filter(sessions::id.eq(id)))
.execute(&mut pool.get()?)?
> 0,
)
}
}