Requests
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import axios from "@/config/axios";
|
||||
import type {
|
||||
AddTicketType,
|
||||
AttributeResponseType,
|
||||
MyRequestsResponseType,
|
||||
RequestDetailResponseType,
|
||||
RequestType,
|
||||
ProductsResponseType,
|
||||
TicketsResponseType,
|
||||
} from "../type/Types";
|
||||
import { RequestStatusEnum, TabMyRequestsEnum } from "../enum/RequestEnum";
|
||||
|
||||
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 submitRequest = async (params: RequestType[]) => {
|
||||
const { data } = await axios.post(`/public/request`, { items: params });
|
||||
return data;
|
||||
};
|
||||
|
||||
export const getMyRequests = async (
|
||||
page: number = 1,
|
||||
active: TabMyRequestsEnum,
|
||||
) => {
|
||||
const statuses =
|
||||
active === TabMyRequestsEnum.IN_PROGRESS
|
||||
? [
|
||||
RequestStatusEnum.DESIGN_FINISHED,
|
||||
RequestStatusEnum.DESIGN_INITIATED,
|
||||
RequestStatusEnum.DESIGN_REVISION,
|
||||
RequestStatusEnum.IN_PRINTING,
|
||||
RequestStatusEnum.AFTER_PRINT_BOXING,
|
||||
RequestStatusEnum.AFTER_PRINT_CARTONING,
|
||||
RequestStatusEnum.AFTER_PRINT_COVER,
|
||||
RequestStatusEnum.READY_FOR_DELIVERY,
|
||||
RequestStatusEnum.READY_TO_PRINTING,
|
||||
]
|
||||
: active === TabMyRequestsEnum.CANCELLED
|
||||
? [RequestStatusEnum.CANCELED]
|
||||
: active === TabMyRequestsEnum.DELIVERED
|
||||
? [RequestStatusEnum.DELIVERED]
|
||||
: undefined;
|
||||
|
||||
let query = `?page=${page}`;
|
||||
if (statuses) {
|
||||
query += `&statuses=${statuses}`;
|
||||
}
|
||||
const { data } = await axios.get<MyRequestsResponseType>(
|
||||
`/public/request${query}`,
|
||||
);
|
||||
return data;
|
||||
};
|
||||
|
||||
export const getRequestDetails = async (id: string) => {
|
||||
const { data } = await axios.get<RequestDetailResponseType>(
|
||||
`/public/request/${id}`,
|
||||
);
|
||||
return data;
|
||||
};
|
||||
|
||||
export const getTickets = async (id: string) => {
|
||||
const { data } = await axios.get<TicketsResponseType>(
|
||||
`/public/ticket/ref/${id}`,
|
||||
);
|
||||
return data;
|
||||
};
|
||||
|
||||
export const addTicket = async (id: string, params: AddTicketType) => {
|
||||
const { data } = await axios.post(`/public/ticket/ref/${id}`, params);
|
||||
return data;
|
||||
};
|
||||
Reference in New Issue
Block a user