feat: add auth
This commit is contained in:
@@ -6,6 +6,8 @@ use axum::{
|
||||
};
|
||||
use axum_macros::debug_handler;
|
||||
|
||||
use crate::middleware::auth;
|
||||
use crate::middleware::auth::Claims;
|
||||
use crate::model::db::book::ActiveModel as BookActiveModel;
|
||||
use crate::model::db::book::Column as BookColumn;
|
||||
use crate::model::db::book::Model as BookModel;
|
||||
@@ -31,19 +33,19 @@ pub fn get_nest_handlers() -> Router<crate::AppState> {
|
||||
//
|
||||
#[debug_handler]
|
||||
async fn get_all_books_handler(
|
||||
state: State<AppState>
|
||||
) -> Result<Json<Vec<book::BookItem>>,(StatusCode,String)> {
|
||||
// let conn = state.conn.get_postgres_connection_pool();
|
||||
let uid :i64 = 1;
|
||||
let all_books = Book::find()
|
||||
state: State<AppState>,
|
||||
claims: Claims,
|
||||
) -> Result<Json<Vec<book::BookItem>>, (StatusCode, String)> {
|
||||
let uid: i64 = claims.uid.clone();
|
||||
let all_books = Book::find()
|
||||
.filter(BookColumn::Uid.eq(uid))
|
||||
.all(&state.conn)
|
||||
.await
|
||||
.map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR,e.to_string()))?;
|
||||
.map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, e.to_string()))?;
|
||||
|
||||
let mut books: Vec<BookItem> = Vec::new();
|
||||
for b in all_books {
|
||||
let book_resp = BookItem{
|
||||
let book_resp = BookItem {
|
||||
id: b.id,
|
||||
name: b.name,
|
||||
};
|
||||
@@ -54,11 +56,11 @@ async fn get_all_books_handler(
|
||||
|
||||
#[debug_handler]
|
||||
async fn get_book_by_id_handler(
|
||||
Path(id):Path<i64>,
|
||||
state:State<AppState>,
|
||||
) -> Result<Json<BookItem>,(StatusCode,String)> {
|
||||
// let conn = state.conn.get_postgres_connection_pool();
|
||||
let uid: i64 = 1;
|
||||
Path(id): Path<i64>,
|
||||
state: State<AppState>,
|
||||
claims: Claims,
|
||||
) -> Result<Json<BookItem>, (StatusCode, String)> {
|
||||
let uid: i64 = claims.uid.clone();
|
||||
let book_query = Book::find()
|
||||
.filter(BookColumn::Uid.eq(uid))
|
||||
.filter(BookColumn::Id.eq(id))
|
||||
@@ -84,10 +86,10 @@ async fn get_book_by_id_handler(
|
||||
#[debug_handler]
|
||||
async fn create_book_handler(
|
||||
state: State<AppState>,
|
||||
claims: Claims,
|
||||
Json(payload): Json<BookInfo>,
|
||||
) -> Result<Json<SimpleResponse>, (StatusCode, String)> {
|
||||
// let conn = state.conn.get_postgres_connection_pool();
|
||||
let uid: i64 = 1;
|
||||
let uid: i64 = claims.uid.clone();
|
||||
|
||||
let book = BookActiveModel {
|
||||
name: Set(payload.name.clone().to_owned()),
|
||||
@@ -121,10 +123,10 @@ async fn create_book_handler(
|
||||
async fn update_book_handler(
|
||||
Path(id): Path<i64>,
|
||||
state: State<AppState>,
|
||||
claims: Claims,
|
||||
Json(payload): Json<BookInfo>,
|
||||
) -> Result<Json<SimpleResponse>, (StatusCode, String)> {
|
||||
// let conn = state.conn.get_postgres_connection_pool();
|
||||
let uid: i64 = 1;
|
||||
let uid: i64 = claims.uid.clone();
|
||||
|
||||
let exist_book = Book::find()
|
||||
.filter(BookColumn::Uid.eq(uid))
|
||||
|
||||
Reference in New Issue
Block a user