saleor-dashboard/src/orders/urls.ts

111 lines
3 KiB
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
import { stringify as stringifyQs } from "qs";
2019-08-09 10:26:22 +00:00
import urlJoin from "url-join";
2019-06-19 14:40:52 +00:00
import {
ActiveTab,
BulkAction,
Dialog,
Filters,
2019-09-05 13:05:12 +00:00
FiltersWithMultipleValues,
2019-06-19 14:40:52 +00:00
Pagination,
2019-09-10 15:14:11 +00:00
SingleAction,
2019-12-17 17:13:56 +00:00
TabActionDialog,
Sort
2019-06-19 14:40:52 +00:00
} from "../types";
const orderSectionUrl = "/orders";
export const orderListPath = orderSectionUrl;
export enum OrderListUrlFiltersEnum {
2019-12-20 10:44:41 +00:00
createdFrom = "createdFrom",
createdTo = "createdTo",
2020-02-03 11:40:46 +00:00
customer = "customer",
2019-09-16 11:22:15 +00:00
payment = "payment",
query = "query"
2019-06-19 14:40:52 +00:00
}
2019-09-05 13:05:12 +00:00
export enum OrderListUrlFiltersWithMultipleValuesEnum {
status = "status"
}
export type OrderListUrlFilters = Filters<OrderListUrlFiltersEnum> &
FiltersWithMultipleValues<OrderListUrlFiltersWithMultipleValuesEnum>;
2019-09-10 15:14:11 +00:00
export type OrderListUrlDialog = "cancel" | TabActionDialog;
2019-12-17 17:13:56 +00:00
export enum OrderListUrlSortField {
number = "number",
customer = "customer",
date = "date",
fulfillment = "status",
payment = "payment",
total = "total"
}
export type OrderListUrlSort = Sort<OrderListUrlSortField>;
2019-06-19 14:40:52 +00:00
export type OrderListUrlQueryParams = BulkAction &
Dialog<OrderListUrlDialog> &
OrderListUrlFilters &
2019-12-17 17:13:56 +00:00
OrderListUrlSort &
2019-06-19 14:40:52 +00:00
Pagination &
ActiveTab;
export const orderListUrl = (params?: OrderListUrlQueryParams): string => {
const orderList = orderListPath;
if (params === undefined) {
return orderList;
} else {
return urlJoin(orderList, "?" + stringifyQs(params));
}
};
export const orderDraftListPath = urlJoin(orderSectionUrl, "drafts");
2019-09-11 14:28:42 +00:00
export enum OrderDraftListUrlFiltersEnum {
2020-01-02 16:55:34 +00:00
createdFrom = "createdFrom",
createdTo = "createdTo",
customer = "customer",
2019-09-11 14:28:42 +00:00
query = "query"
}
export type OrderDraftListUrlFilters = Filters<OrderDraftListUrlFiltersEnum>;
export type OrderDraftListUrlDialog = "remove" | TabActionDialog;
2019-12-17 17:13:56 +00:00
export enum OrderDraftListUrlSortField {
number = "number",
customer = "customer",
date = "date",
total = "total"
}
export type OrderDraftListUrlSort = Sort<OrderDraftListUrlSortField>;
2019-09-11 14:28:42 +00:00
export type OrderDraftListUrlQueryParams = ActiveTab &
BulkAction &
2019-06-19 14:40:52 +00:00
Dialog<OrderDraftListUrlDialog> &
2019-09-11 14:28:42 +00:00
OrderDraftListUrlFilters &
2019-12-17 17:13:56 +00:00
OrderDraftListUrlSort &
2019-06-19 14:40:52 +00:00
Pagination;
export const orderDraftListUrl = (
params?: OrderDraftListUrlQueryParams
): string => {
const orderDraftList = orderDraftListPath;
if (params === undefined) {
return orderDraftList;
} else {
return urlJoin(orderDraftList, "?" + stringifyQs(params));
}
};
export const orderPath = (id: string) => urlJoin(orderSectionUrl, id);
export type OrderUrlDialog =
| "add-order-line"
| "cancel"
| "cancel-fulfillment"
| "capture"
| "edit-billing-address"
| "edit-fulfillment"
| "edit-shipping"
| "edit-shipping-address"
| "finalize"
| "mark-paid"
| "refund"
| "void";
export type OrderUrlQueryParams = Dialog<OrderUrlDialog> & SingleAction;
export const orderUrl = (id: string, params?: OrderUrlQueryParams) =>
orderPath(encodeURIComponent(id)) + "?" + stringifyQs(params);
2020-04-20 17:18:20 +00:00
export const orderFulfillPath = (id: string) =>
urlJoin(orderPath(id), "fulfill");
export const orderFulfillUrl = (id: string) =>
orderFulfillPath(encodeURIComponent(id));