roles.ts•3.17 kB
/**
* Generated by orval v7.2.0 🍺
* Do not edit manually.
* storyden
* Storyden social API for building community driven platforms.
The Storyden API does not adhere to semantic versioning but instead applies a rolling strategy with deprecations and minimal breaking changes. This has been done mainly for a simpler development process and it may be changed to a more fixed versioning strategy in the future. Ultimately, the primary way Storyden tracks versions is dates, there are no set release tags currently.
* OpenAPI spec version: v1.25.8-canary
*/
import type {
RoleCreateBody,
RoleCreateOKResponse,
RoleGetOKResponse,
RoleListOKResponse,
RoleUpdateBody,
} from "../openapi-schema";
import { fetcher } from "../server";
/**
* Creates a role with the specified permissions granted.
*/
export type roleCreateResponse = {
data: RoleCreateOKResponse;
status: number;
};
export const getRoleCreateUrl = () => {
return `/roles`;
};
export const roleCreate = async (
roleCreateBody: RoleCreateBody,
options?: RequestInit,
): Promise<roleCreateResponse> => {
return fetcher<Promise<roleCreateResponse>>(getRoleCreateUrl(), {
...options,
method: "POST",
headers: { "Content-Type": "application/json", ...options?.headers },
body: JSON.stringify(roleCreateBody),
});
};
/**
* List all roles and their permissions.
*/
export type roleListResponse = {
data: RoleListOKResponse;
status: number;
};
export const getRoleListUrl = () => {
return `/roles`;
};
export const roleList = async (
options?: RequestInit,
): Promise<roleListResponse> => {
return fetcher<Promise<roleListResponse>>(getRoleListUrl(), {
...options,
method: "GET",
});
};
/**
* Retreives a role and all its permissions.
*/
export type roleGetResponse = {
data: RoleGetOKResponse;
status: number;
};
export const getRoleGetUrl = (roleId: string) => {
return `/roles/${roleId}`;
};
export const roleGet = async (
roleId: string,
options?: RequestInit,
): Promise<roleGetResponse> => {
return fetcher<Promise<roleGetResponse>>(getRoleGetUrl(roleId), {
...options,
method: "GET",
});
};
/**
* Updates a role's attributes.
*/
export type roleUpdateResponse = {
data: RoleGetOKResponse;
status: number;
};
export const getRoleUpdateUrl = (roleId: string) => {
return `/roles/${roleId}`;
};
export const roleUpdate = async (
roleId: string,
roleUpdateBody: RoleUpdateBody,
options?: RequestInit,
): Promise<roleUpdateResponse> => {
return fetcher<Promise<roleUpdateResponse>>(getRoleUpdateUrl(roleId), {
...options,
method: "PATCH",
headers: { "Content-Type": "application/json", ...options?.headers },
body: JSON.stringify(roleUpdateBody),
});
};
/**
* Deletes a role.
*/
export type roleDeleteResponse = {
data: void;
status: number;
};
export const getRoleDeleteUrl = (roleId: string) => {
return `/roles/${roleId}`;
};
export const roleDelete = async (
roleId: string,
options?: RequestInit,
): Promise<roleDeleteResponse> => {
return fetcher<Promise<roleDeleteResponse>>(getRoleDeleteUrl(roleId), {
...options,
method: "DELETE",
});
};