revbits-cip-integration
Version:
This package will integrate CIP with any product
111 lines (110 loc) • 3.1 kB
TypeScript
import { HttpPaginatedResponse, HttpResponse } from './http.interface';
import { PLATFORM } from './types.type';
interface RolePermissions {
[key: string]: boolean;
}
export interface Role {
id: string;
name: string;
description: string;
permissions: RolePermissions;
createdAt: Date;
updatedAt: Date;
}
type RoleSortableKeys = {
[K in keyof Role]: Role[K] extends string | number ? K : never;
}[keyof Role];
interface RoleQueryParams {
names?: Array<string>;
ids?: Array<string>;
notIds?: Array<string>;
name?: string;
description?: string;
}
export interface HttpGetAllRolesRequest {
platform?: PLATFORM;
page?: number;
sort?: RoleSortableKeys;
direction?: string;
perPage?: number;
query?: RoleQueryParams;
search?: string;
}
export type HttpGetAllRolesResponse = HttpPaginatedResponse<Role>;
export interface HttpGetOneRoleRequest {
platform?: PLATFORM;
id: string;
}
export type HttpGetOneRoleResponse = HttpResponse<Role>;
export interface HttpCreateRole {
name: string;
description?: string | null;
permissions: {
[key: string]: boolean;
};
isDeletable?: boolean;
}
export interface HttpCreateRoleRequest {
platform?: string;
role: HttpCreateRole;
}
export type HttpCreateRoleResponse = HttpGetOneRoleResponse;
export interface HttpCreateBulkRolesRequest {
platform?: string;
roles: Array<HttpCreateRole>;
}
export type HttpCreateBulkRolesResponse = HttpGetOneRoleResponse;
interface UpdateRoleObj {
name?: string;
description?: string | null;
permissions?: {
[key: string]: boolean;
};
isDeletable?: boolean;
}
export interface HttpUpdateRoleRequest {
platform?: string;
id: string;
role: UpdateRoleObj;
}
export type HttpUpdateRoleResponse = HttpGetOneRoleResponse;
interface BulkUpdateSingleRequest {
id: string;
role: UpdateRoleObj;
}
export interface HttpUpdateBulkRolesRequest {
platform?: string;
roles: Array<BulkUpdateSingleRequest>;
}
export type HttpUpdateBulkRolesResponse = HttpResponse<{
updated: Array<BulkUpdateSingleRequest>;
ignoredDueToValidationErrors: Array<BulkUpdateSingleRequest>;
}>;
export interface HttpDeleteRoleRequest {
platform?: string;
id: string;
}
export type HttpDeleteRoleResponse = HttpGetOneRoleResponse;
export interface HttpCheckRolesExistenceByNamesRequest {
platform?: PLATFORM;
names: Array<string>;
}
interface HttpCheckRolesExistenceByNamesResponseSingleObj {
newOnCip: Array<string>;
existence: {
[name: string]: boolean;
};
}
export type HttpCheckRolesExistenceByNamesResponse = HttpResponse<HttpCheckRolesExistenceByNamesResponseSingleObj>;
export interface HttpCheckRolesExistenceByIdsRequest {
platform?: PLATFORM;
ids: Array<string>;
}
interface HttpCheckRolesExistenceByIdsResponseSingleObj {
newOnCip: Array<string>;
existence: {
[id: string]: boolean;
};
}
export type HttpCheckRolesExistenceByIdsResponse = HttpResponse<HttpCheckRolesExistenceByIdsResponseSingleObj>;
export {};