finish postgres

This commit is contained in:
JMARyA 2024-10-04 14:38:35 +02:00
parent 7b7e1a4014
commit 08e24f63f4
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
16 changed files with 454 additions and 306 deletions

View file

@ -1,9 +1,7 @@
use crate::get_pg;
use crate::library::user::Session;
use crate::library::user::User;
use mongod::vec_to_api;
use mongod::Model;
use mongod::ToAPI;
use mongodb::bson::doc;
use crate::route::vec_to_api;
use rocket::get;
use rocket::http::Status;
use rocket::outcome::Outcome;
@ -33,8 +31,7 @@ impl<'r> FromRequest<'r> for User {
async fn from_request(request: &'r Request<'_>) -> rocket::request::Outcome<Self, Self::Error> {
match request.headers().get_one("token") {
Some(key) => {
if let Some(session) = Session::find_one(doc! { "token": key}).await {
let user = session.user.get().await;
if let Some(user) = sqlx::query_as("SELECT * FROM user WHERE id = (SELECT user FROM user_session WHERE token = $1)").bind(key).fetch_optional(get_pg!()).await.unwrap() {
Outcome::Success(user)
} else {
Outcome::Error((Status::Unauthorized, ()))
@ -84,7 +81,7 @@ pub async fn passwd_route(passwd: Json<PasswdData>, u: User) -> FallibleApiRespo
pub async fn users_route(u: User) -> FallibleApiResponse {
check_admin!(u);
let users: Vec<_> = vec_to_api(&User::find_all().await.unwrap()).await;
let users: Vec<_> = vec_to_api(&User::find_all().await).await;
Ok(json!({"users": users}))
}
@ -101,5 +98,5 @@ pub async fn user_create_route(user: Json<LoginData>, u: User) -> FallibleApiRes
.await
.unwrap();
Ok(json!({"created": new_user._id}))
Ok(json!({"created": new_user.username}))
}