Files
negareh-console/src/pages/order/service/OrderService.ts
T
hamid zarghami 8cc5dae04e fix error
2026-02-16 11:05:30 +03:30

81 lines
2.2 KiB
TypeScript

import axios from "@/config/axios";
import type {
AddTicketType,
AttributeResponseType,
MyOrdersResponseType,
OrderDetailResponseType,
OrderType,
ProductsResponseType,
TicketsResponseType,
} 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 getAttributes = async (productId?: string) => {
const { data } = await axios.get<AttributeResponseType>(
`/public/entity/${productId}/field`,
);
return data;
};
export const submitOrder = async (params: OrderType[]) => {
const { data } = await axios.post(`/public/orders`, { 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;
};
export const getOrderDetails = async (id: string) => {
const { data } = await axios.get<OrderDetailResponseType>(
`/public/orders/${id}`,
);
return data;
};
export const getTickets = async (id: string) => {
const { data } = await axios.get<TicketsResponseType>(
`/public/ticket/order/item/${id}`,
);
return data;
};
export const addTicket = async (id: string, params: AddTicketType) => {
const { data } = await axios.post(`/public/ticket/order/item/${id}`, params);
return data;
};