user-auth store backend compiles

This commit is contained in:
2022-12-30 22:30:16 +05:30
parent 08c41e2db9
commit 0aa37288ee

View File

@@ -31,7 +31,7 @@ use migration::{Migrator, MigratorTrait};
use chrono::Local; use chrono::Local;
use axum_login::{ use axum_login::{
axum_sessions::{async_session::MemoryStore as SessionMemoryStore, SessionLayer}, axum_sessions::{async_session::MemoryStore as SessionMemoryStore, SessionLayer},
AuthLayer, AuthUser, RequireAuthorizationLayer, AuthLayer, RequireAuthorizationLayer,
}; };
use rand::Rng; use rand::Rng;
@@ -244,20 +244,21 @@ pub async fn main() {
let user_store = booksman_orm::AxumUserStore::new(&conn); let user_store = booksman_orm::AxumUserStore::new(&conn);
let auth_layer = AuthLayer::new(user_store, &secret); let auth_layer: AuthLayer<booksman_orm::AxumUserStore, booksman_orm::AxumUser> = AuthLayer::new(user_store, &secret);
let meili_client = Client::new(meili_url, meili_key); let meili_client = Client::new(meili_url, meili_key);
let app = Router::new() let app = Router::new()
.route("/api/search_openlibrary", get(search_openlibrary))
.route("/api/create_by_isbn", get(create_by_isbn)) .route("/api/create_by_isbn", get(create_by_isbn))
.route("/api/create", post(create_book))
.route("/api/update", post(update_book))
.route("/api/delete/:id", get(delete_book)) .route("/api/delete/:id", get(delete_book))
.route_layer(RequireAuthorizationLayer::<booksman_orm::AxumUser>::login())
.route("/api/list", get(list_book)) .route("/api/list", get(list_book))
.route("/api/list_search", get(list_search_book)) .route("/api/list_search", get(list_search_book))
.route("/api/list_users", get(list_users)) .route("/api/list_users", get(list_users))
.route("/api/create", post(create_book)) .route("/api/search_openlibrary", get(search_openlibrary))
.route("/api/update", post(update_book))
.route("/api/login", post(login_handler)) .route("/api/login", post(login_handler))
.route("/api/register", post(register_handler)) .route("/api/register", post(register_handler))
.route("/api/logout", post(logout_handler)) .route("/api/logout", post(logout_handler))
@@ -296,7 +297,7 @@ pub async fn main() {
} }
#[axum_macros::debug_handler] //#[axum_macros::debug_handler]
async fn register_handler(Extension(ref conn): Extension<DatabaseConnection>, async fn register_handler(Extension(ref conn): Extension<DatabaseConnection>,
Json(user_sent): Json<booksman_orm::AxumUser>) -> impl IntoResponse { Json(user_sent): Json<booksman_orm::AxumUser>) -> impl IntoResponse {
// add to db // add to db
@@ -305,9 +306,7 @@ Json(user_sent): Json<booksman_orm::AxumUser>) -> impl IntoResponse {
user_name: Some(user_sent.clone().name), user_name: Some(user_sent.clone().name),
password_hash: user_sent.clone().password_hash, password_hash: user_sent.clone().password_hash,
}; };
let created_user = MutationCore::create_user(conn, user).await.expect("Failed to create user"); let _created_user = MutationCore::create_user(conn, user).await.expect("Failed to create user");
//auth.login(&user_sent_updated).await.unwrap();
return "success"; return "success";
} }
@@ -317,9 +316,9 @@ async fn list_users(
) -> impl IntoResponse { ) -> impl IntoResponse {
let usersmodels : Vec<user::Model> = QueryCore::list_all_users(&conn).await.unwrap_or(Vec::new()); let usersmodels : Vec<user::Model> = QueryCore::list_all_users(&conn).await.unwrap_or(Vec::new());
let mut users : Vec<User> = Vec::new(); let mut users : Vec<booksman_orm::AxumUser> = Vec::new();
for usermodel in usersmodels.iter() { for usermodel in usersmodels.iter() {
let user = User{ let user = booksman_orm::AxumUser{
id: usermodel.id, id: usermodel.id,
name: usermodel.user_name.clone().unwrap().clone(), name: usermodel.user_name.clone().unwrap().clone(),
password_hash : "".to_string(), password_hash : "".to_string(),