51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import axios from "@/config/axios";
|
|
import type {
|
|
MyOrdersResponseType,
|
|
OrderType,
|
|
ProductsResponseType,
|
|
} from "../type/Types";
|
|
import { OrderStatusEnum, TabMyOrdersEnum } from "../enum/OrderEnum";
|
|
|
|
export const getProducts = async () => {
|
|
const { data } = await axios.get<ProductsResponseType>(`/public/products`);
|
|
return data;
|
|
};
|
|
|
|
export const submitOrder = async (params: OrderType[]) => {
|
|
const { data } = await axios.post(`/public/order`, { items: params });
|
|
return data;
|
|
};
|
|
|
|
export const getMyOrders = async (
|
|
page: number = 1,
|
|
active: TabMyOrdersEnum,
|
|
) => {
|
|
const statuses =
|
|
active === TabMyOrdersEnum.IN_PROGRESS
|
|
? [
|
|
OrderStatusEnum.DESIGN_FINISHED,
|
|
OrderStatusEnum.DESIGN_INITIATED,
|
|
OrderStatusEnum.DESIGN_REVISION,
|
|
OrderStatusEnum.IN_PRINTING,
|
|
OrderStatusEnum.AFTER_PRINT_BOXING,
|
|
OrderStatusEnum.AFTER_PRINT_CARTONING,
|
|
OrderStatusEnum.AFTER_PRINT_COVER,
|
|
OrderStatusEnum.READY_FOR_DELIVERY,
|
|
OrderStatusEnum.READY_TO_PRINTING,
|
|
]
|
|
: active === TabMyOrdersEnum.CANCELLED
|
|
? [OrderStatusEnum.CANCELED]
|
|
: active === TabMyOrdersEnum.DELIVERED
|
|
? [OrderStatusEnum.DELIVERED]
|
|
: undefined;
|
|
|
|
let query = `?page=${page}`;
|
|
if (statuses) {
|
|
query += `&statuses=${statuses}`;
|
|
}
|
|
const { data } = await axios.get<MyOrdersResponseType>(
|
|
`/public/orders${query}`,
|
|
);
|
|
return data;
|
|
};
|