71 lines
2 KiB
TypeScript
71 lines
2 KiB
TypeScript
![]() |
import { stringifyQs } from "@saleor/utils/urls";
|
||
|
import urlJoin from "url-join";
|
||
|
|
||
|
import { Dialog, SingleAction } from "../types";
|
||
|
|
||
|
export type CustomAppListUrlDialog = "remove-custom-app";
|
||
|
export type CustomAppListUrlQueryParams = Dialog<CustomAppListUrlDialog> &
|
||
|
SingleAction;
|
||
|
|
||
|
export type CustomAppDetailsUrlDialog =
|
||
|
| "create-token"
|
||
|
| "remove-webhook"
|
||
|
| "remove-token"
|
||
|
| "app-activate"
|
||
|
| "app-deactivate";
|
||
|
export type CustomAppDetailsUrlQueryParams = Dialog<CustomAppDetailsUrlDialog> &
|
||
|
SingleAction;
|
||
|
|
||
|
export const CustomAppSections = {
|
||
|
appsSection: "/custom-apps/",
|
||
|
webhooksSection: "/webhooks/",
|
||
|
};
|
||
|
|
||
|
export const CustomAppPaths = {
|
||
|
resolveAppPath: (id: string) => urlJoin(CustomAppSections.appsSection, id),
|
||
|
appAddPath: urlJoin(CustomAppSections.appsSection, "add"),
|
||
|
appListPath: CustomAppSections.appsSection,
|
||
|
resolveWebhookPath: (appId: string, id: string) =>
|
||
|
urlJoin(
|
||
|
CustomAppSections.appsSection,
|
||
|
appId,
|
||
|
CustomAppSections.webhooksSection,
|
||
|
id,
|
||
|
),
|
||
|
resolveWebhookAddPath: (appId: string) =>
|
||
|
urlJoin(
|
||
|
CustomAppSections.appsSection,
|
||
|
appId,
|
||
|
CustomAppSections.webhooksSection,
|
||
|
"add",
|
||
|
),
|
||
|
};
|
||
|
|
||
|
export const CustomAppUrls = {
|
||
|
appAddUrl: CustomAppPaths.appAddPath,
|
||
|
resolveAppUrl: (id: string, params?: CustomAppDetailsUrlQueryParams) =>
|
||
|
CustomAppPaths.resolveAppPath(encodeURIComponent(id)) +
|
||
|
"?" +
|
||
|
stringifyQs(params),
|
||
|
resolveAppListUrl: (params?: CustomAppListUrlQueryParams) =>
|
||
|
CustomAppPaths.appListPath + "?" + stringifyQs(params),
|
||
|
resolveWebhookUrl: (
|
||
|
appId: string,
|
||
|
id: string,
|
||
|
params?: CustomAppDetailsUrlQueryParams,
|
||
|
) =>
|
||
|
CustomAppPaths.resolveWebhookPath(
|
||
|
encodeURIComponent(appId),
|
||
|
encodeURIComponent(id),
|
||
|
) +
|
||
|
"?" +
|
||
|
stringifyQs(params),
|
||
|
resolveWebhookAddUrl: (
|
||
|
appId: string,
|
||
|
params?: CustomAppDetailsUrlQueryParams,
|
||
|
) =>
|
||
|
CustomAppPaths.resolveWebhookAddPath(encodeURIComponent(appId)) +
|
||
|
"?" +
|
||
|
stringifyQs(params),
|
||
|
};
|