saleor-dashboard/src/permissionGroups/urls.ts
Krzysztof Wolski a82de30309
Add circleci config and enhance our linters (#519)
* Add circleci config

* Season linting config

* Apply code style
2020-05-14 11:30:32 +02:00

58 lines
1.6 KiB
TypeScript

import {
BulkAction,
Dialog,
Pagination,
SingleAction,
Sort,
TabActionDialog
} from "@saleor/types";
import { stringify as stringifyQs } from "qs";
import urlJoin from "url-join";
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);