diff --git a/src/api/admin/books.ts b/src/api/admin/books.ts index a0270e7..86eeb1d 100644 --- a/src/api/admin/books.ts +++ b/src/api/admin/books.ts @@ -1,18 +1,22 @@ import client from "../client" import type { ApiResultString, BookAddDto, BookUpdateDto } from "@/types/api" -export function addBook(data: BookAddDto) { - return client.post("/api/admin/books/add", data) +export async function addBook(data: BookAddDto): Promise { + const res = await client.post("/api/admin/books/add", data) + return res.data.data } -export function deleteBook(id: number) { - return client.post("/api/admin/books/delete", null, { params: { id } }) +export async function deleteBook(id: number): Promise { + const res = await client.post("/api/admin/books/delete", null, { params: { id } }) + return res.data.data } -export function updateBook(id: number, data: BookUpdateDto) { - return client.post("/api/admin/books/update", data, { params: { id } }) +export async function updateBook(id: number, data: BookUpdateDto): Promise { + const res = await client.post("/api/admin/books/update", data, { params: { id } }) + return res.data.data } -export function updateStock(id: number, stock: number) { - return client.post("/api/admin/books/update-stock", null, { params: { id, stock } }) +export async function updateStock(id: number, stock: number): Promise { + const res = await client.post("/api/admin/books/update-stock", null, { params: { id, stock } }) + return res.data.data } diff --git a/src/api/admin/borrows.ts b/src/api/admin/borrows.ts index e4f60fe..5b1d0a9 100644 --- a/src/api/admin/borrows.ts +++ b/src/api/admin/borrows.ts @@ -1,22 +1,27 @@ import client from "../client" -import type { ApiResultBorrowInfoVo, ApiResultListBorrowInfoVo, ApiResultString } from "@/types/api" +import type { ApiResultBorrowInfoVo, ApiResultListBorrowInfoVo, ApiResultString, BorrowInfoVo } from "@/types/api" -export function getAllBorrows() { - return client.get("/api/admin/borrows/getall") +export async function getAllBorrows(): Promise { + const res = await client.get("/api/admin/borrows/getall") + return res.data.data! } -export function getOneBorrow(id: number) { - return client.get("/api/admin/borrows/getone", { params: { id } }) +export async function getOneBorrow(id: number): Promise { + const res = await client.get("/api/admin/borrows/getone", { params: { id } }) + return res.data.data! } -export function searchBorrows(query: string) { - return client.get("/api/admin/borrows/search", { params: { query } }) +export async function searchBorrows(query: string): Promise { + const res = await client.get("/api/admin/borrows/search", { params: { query } }) + return res.data.data! } -export function borrowBook(bookId: number, userId: number) { - return client.post("/api/admin/borrows/borrowbook", null, { params: { bookId, userId } }) +export async function borrowBook(bookId: number, userId: number): Promise { + const res = await client.post("/api/admin/borrows/borrowbook", null, { params: { bookId, userId } }) + return res.data.data } -export function returnBook(recordId: number) { - return client.post("/api/admin/borrows/returnbook", null, { params: { recordId } }) +export async function returnBook(recordId: number): Promise { + const res = await client.post("/api/admin/borrows/returnbook", null, { params: { recordId } }) + return res.data.data } diff --git a/src/api/auth.ts b/src/api/auth.ts index 6f62124..a796a50 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -1,10 +1,12 @@ import client from "./client" -import type { ApiResultLoginVo, UserLoginDto } from "@/types/api" +import type { ApiResultLoginVo, ApiResultString, LoginVo, UserLoginDto } from "@/types/api" -export function login(data: UserLoginDto) { - return client.post("/api/auth/login", data) +export async function login(data: UserLoginDto): Promise { + const res = await client.post("/api/auth/login", data) + return res.data.data! } -export function logout() { - return client.post("/api/auth/logout") +export async function logout(): Promise { + const res = await client.post("/api/auth/logout") + return res.data.data } diff --git a/src/api/books.ts b/src/api/books.ts index c420d77..278f9a1 100644 --- a/src/api/books.ts +++ b/src/api/books.ts @@ -1,14 +1,18 @@ import client from "./client" import type { ApiResultBook, ApiResultListBook } from "@/types/api" +import type { Book } from "@/types/api" -export function getAllBooks() { - return client.get("/api/books/getall") +export async function getAllBooks(): Promise { + const res = await client.get("/api/books/getall") + return res.data.data! } -export function getOneBook(id: number) { - return client.get("/api/books/getone", { params: { id } }) +export async function getOneBook(id: number): Promise { + const res = await client.get("/api/books/getone", { params: { id } }) + return res.data.data! } -export function searchBook(query: string) { - return client.get("/api/books/search", { params: { query } }) +export async function searchBook(query: string): Promise { + const res = await client.get("/api/books/search", { params: { query } }) + return res.data.data! } diff --git a/src/api/borrows.ts b/src/api/borrows.ts index 9c81705..e38600e 100644 --- a/src/api/borrows.ts +++ b/src/api/borrows.ts @@ -1,22 +1,27 @@ import client from "./client" -import type { ApiResultListMyBorrowVo, ApiResultMyBorrowVo, ApiResultString } from "@/types/api" +import type { ApiResultListMyBorrowVo, ApiResultMyBorrowVo, ApiResultString, MyBorrowVo } from "@/types/api" -export function getAllMyBorrows() { - return client.get("/api/borrows/getall") +export async function getAllMyBorrows(): Promise { + const res = await client.get("/api/borrows/getall") + return res.data.data! } -export function getOneMyBorrow(borrowId: number) { - return client.get("/api/borrows/getone", { params: { borrowId } }) +export async function getOneMyBorrow(borrowId: number): Promise { + const res = await client.get("/api/borrows/getone", { params: { borrowId } }) + return res.data.data! } -export function searchMyBorrows(query: string) { - return client.get("/api/borrows/search", { params: { query } }) +export async function searchMyBorrows(query: string): Promise { + const res = await client.get("/api/borrows/search", { params: { query } }) + return res.data.data! } -export function borrowBookForMe(bookId: number) { - return client.post("/api/borrows/borrowbook", null, { params: { bookId } }) +export async function borrowBookForMe(bookId: number): Promise { + const res = await client.post("/api/borrows/borrowbook", null, { params: { bookId } }) + return res.data.data } -export function returnBookForMe(borrowId: number) { - return client.post("/api/borrows/returnbook", null, { params: { borrowId } }) +export async function returnBookForMe(borrowId: number): Promise { + const res = await client.post("/api/borrows/returnbook", null, { params: { borrowId } }) + return res.data.data } diff --git a/src/api/client.ts b/src/api/client.ts index 56c3481..1618ba7 100644 --- a/src/api/client.ts +++ b/src/api/client.ts @@ -16,7 +16,17 @@ client.interceptors.request.use((config) => { }) client.interceptors.response.use( - (response) => response, + (response) => { + const body = response.data as ApiResult + if (body.code !== 200) { + if (body.code === 401) { + useAuthStore.getState().clearAuth() + window.location.href = "/login" + } + throw new Error(body.message || "Request failed") + } + return response + }, (error: AxiosError>) => { const data = error.response?.data if (data) { diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..45f6a13 --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,5 @@ +export { login, logout } from "./auth" +export { getAllBooks, getOneBook, searchBook } from "./books" +export { getAllMyBorrows, getOneMyBorrow, searchMyBorrows, borrowBookForMe, returnBookForMe } from "./borrows" +export { addBook, deleteBook, updateBook, updateStock } from "./admin/books" +export { getAllBorrows, getOneBorrow, searchBorrows, borrowBook, returnBook } from "./admin/borrows"