saleor-dashboard/src/permissionGroups/urls.ts
Krzysztof Wolski 082a12e0b8
Permission groups section (#406)
* Add permission groups 👪
2020-04-23 17:43:08 +02:00

59 lines
1.6 KiB
TypeScript

import { stringify as stringifyQs } from "qs";
import urlJoin from "url-join";
import {
BulkAction,
Dialog,
Pagination,
TabActionDialog,
Sort,
SingleAction
} from "@saleor/types";
const permissionGroupSection = "/permission-groups/";
export const permissionGroupListPath = permissionGroupSection;
export type PermissionGroupListUrlDialog = "remove" | TabActionDialog;
export enum PermissionGroupListUrlSortField {
name = "name"
}
export type PermissionGroupListUrlSort = Sort<PermissionGroupListUrlSortField>;
export type PermissionGroupListUrlQueryParams = Dialog<
PermissionGroupListUrlDialog
> &
Pagination &
PermissionGroupListUrlSort &
SingleAction;
export const permissionGroupListUrl = (
params?: PermissionGroupListUrlQueryParams
) => permissionGroupListPath + "?" + stringifyQs(params);
export const permissionGroupAddPath = urlJoin(permissionGroupSection, "add");
export const permissionGroupAddUrl = permissionGroupAddPath;
export enum MembersListUrlSortField {
name = "name",
email = "email"
}
export type MembersListUrlSort = Sort<MembersListUrlSortField>;
export const permissionGroupDetailsPath = (id: string) =>
urlJoin(permissionGroupSection, id);
export type PermissionGroupDetailsUrlDialog =
| "remove"
| "assign"
| "unassign"
| "unassignError";
export type PermissionGroupDetailsUrlQueryParams = BulkAction &
Pagination &
MembersListUrlSort &
Dialog<PermissionGroupDetailsUrlDialog>;
export const permissionGroupDetailsUrl = (
id: string,
params?: PermissionGroupDetailsUrlQueryParams
) =>
permissionGroupDetailsPath(encodeURIComponent(id)) +
"?" +
stringifyQs(params);