feat: board creation and actions dropdown
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
// This file is auto-generated by @hey-api/openapi-ts
|
||||
|
||||
import { type Options, getBoards, updateBoard, getDeals, updateDeal, getProjects, getStatuses, updateStatus } from '../sdk.gen';
|
||||
import { type Options, getBoards, createBoard, updateBoard, getDeals, updateDeal, getProjects, getStatuses, updateStatus } from '../sdk.gen';
|
||||
import { queryOptions, type UseMutationOptions } from '@tanstack/react-query';
|
||||
import type { GetBoardsData, UpdateBoardData, UpdateBoardError, UpdateBoardResponse2, GetDealsData, UpdateDealData, UpdateDealError, UpdateDealResponse2, GetProjectsData, GetStatusesData, UpdateStatusData, UpdateStatusError, UpdateStatusResponse2 } from '../types.gen';
|
||||
import type { GetBoardsData, CreateBoardData, CreateBoardError, CreateBoardResponse2, UpdateBoardData, UpdateBoardError, UpdateBoardResponse2, GetDealsData, UpdateDealData, UpdateDealError, UpdateDealResponse2, GetProjectsData, GetStatusesData, UpdateStatusData, UpdateStatusError, UpdateStatusResponse2 } from '../types.gen';
|
||||
import type { AxiosError } from 'axios';
|
||||
import { client as _heyApiClient } from '../client.gen';
|
||||
|
||||
@ -57,6 +57,43 @@ export const getBoardsOptions = (options: Options<GetBoardsData>) => {
|
||||
});
|
||||
};
|
||||
|
||||
export const createBoardQueryKey = (options: Options<CreateBoardData>) => createQueryKey('createBoard', options);
|
||||
|
||||
/**
|
||||
* Create Board
|
||||
*/
|
||||
export const createBoardOptions = (options: Options<CreateBoardData>) => {
|
||||
return queryOptions({
|
||||
queryFn: async ({ queryKey, signal }) => {
|
||||
const { data } = await createBoard({
|
||||
...options,
|
||||
...queryKey[0],
|
||||
signal,
|
||||
throwOnError: true
|
||||
});
|
||||
return data;
|
||||
},
|
||||
queryKey: createBoardQueryKey(options)
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Create Board
|
||||
*/
|
||||
export const createBoardMutation = (options?: Partial<Options<CreateBoardData>>): UseMutationOptions<CreateBoardResponse2, AxiosError<CreateBoardError>, Options<CreateBoardData>> => {
|
||||
const mutationOptions: UseMutationOptions<CreateBoardResponse2, AxiosError<CreateBoardError>, Options<CreateBoardData>> = {
|
||||
mutationFn: async (localOptions) => {
|
||||
const { data } = await createBoard({
|
||||
...options,
|
||||
...localOptions,
|
||||
throwOnError: true
|
||||
});
|
||||
return data;
|
||||
}
|
||||
};
|
||||
return mutationOptions;
|
||||
};
|
||||
|
||||
/**
|
||||
* Update Board
|
||||
*/
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
// This file is auto-generated by @hey-api/openapi-ts
|
||||
|
||||
import type { Options as ClientOptions, TDataShape, Client } from './client';
|
||||
import type { GetBoardsData, GetBoardsResponses, GetBoardsErrors, UpdateBoardData, UpdateBoardResponses, UpdateBoardErrors, GetDealsData, GetDealsResponses, GetDealsErrors, UpdateDealData, UpdateDealResponses, UpdateDealErrors, GetProjectsData, GetProjectsResponses, GetStatusesData, GetStatusesResponses, GetStatusesErrors, UpdateStatusData, UpdateStatusResponses, UpdateStatusErrors } from './types.gen';
|
||||
import { zGetBoardsData, zGetBoardsResponse2, zUpdateBoardData, zUpdateBoardResponse2, zGetDealsData, zGetDealsResponse2, zUpdateDealData, zUpdateDealResponse2, zGetProjectsData, zGetProjectsResponse2, zGetStatusesData, zGetStatusesResponse2, zUpdateStatusData, zUpdateStatusResponse2 } from './zod.gen';
|
||||
import type { GetBoardsData, GetBoardsResponses, GetBoardsErrors, CreateBoardData, CreateBoardResponses, CreateBoardErrors, UpdateBoardData, UpdateBoardResponses, UpdateBoardErrors, GetDealsData, GetDealsResponses, GetDealsErrors, UpdateDealData, UpdateDealResponses, UpdateDealErrors, GetProjectsData, GetProjectsResponses, GetStatusesData, GetStatusesResponses, GetStatusesErrors, UpdateStatusData, UpdateStatusResponses, UpdateStatusErrors } from './types.gen';
|
||||
import { zGetBoardsData, zGetBoardsResponse2, zCreateBoardData, zCreateBoardResponse2, zUpdateBoardData, zUpdateBoardResponse2, zGetDealsData, zGetDealsResponse2, zUpdateDealData, zUpdateDealResponse2, zGetProjectsData, zGetProjectsResponse2, zGetStatusesData, zGetStatusesResponse2, zUpdateStatusData, zUpdateStatusResponse2 } from './zod.gen';
|
||||
import { client as _heyApiClient } from './client.gen';
|
||||
|
||||
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
|
||||
@ -36,6 +36,27 @@ export const getBoards = <ThrowOnError extends boolean = false>(options: Options
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Create Board
|
||||
*/
|
||||
export const createBoard = <ThrowOnError extends boolean = false>(options: Options<CreateBoardData, ThrowOnError>) => {
|
||||
return (options.client ?? _heyApiClient).post<CreateBoardResponses, CreateBoardErrors, ThrowOnError>({
|
||||
requestValidator: async (data) => {
|
||||
return await zCreateBoardData.parseAsync(data);
|
||||
},
|
||||
responseType: 'json',
|
||||
responseValidator: async (data) => {
|
||||
return await zCreateBoardResponse2.parseAsync(data);
|
||||
},
|
||||
url: '/board/',
|
||||
...options,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
...options.headers
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Update Board
|
||||
*/
|
||||
|
||||
@ -4,14 +4,50 @@
|
||||
* BoardSchema
|
||||
*/
|
||||
export type BoardSchema = {
|
||||
/**
|
||||
* Id
|
||||
*/
|
||||
id: number;
|
||||
/**
|
||||
* Name
|
||||
*/
|
||||
name: string;
|
||||
/**
|
||||
* Id
|
||||
* Lexorank
|
||||
*/
|
||||
id: number;
|
||||
lexorank: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* CreateBoardRequest
|
||||
*/
|
||||
export type CreateBoardRequest = {
|
||||
board: CreateBoardSchema;
|
||||
};
|
||||
|
||||
/**
|
||||
* CreateBoardResponse
|
||||
*/
|
||||
export type CreateBoardResponse = {
|
||||
/**
|
||||
* Message
|
||||
*/
|
||||
message: string;
|
||||
board: BoardSchema;
|
||||
};
|
||||
|
||||
/**
|
||||
* CreateBoardSchema
|
||||
*/
|
||||
export type CreateBoardSchema = {
|
||||
/**
|
||||
* Name
|
||||
*/
|
||||
name: string;
|
||||
/**
|
||||
* Projectid
|
||||
*/
|
||||
projectId: number;
|
||||
/**
|
||||
* Lexorank
|
||||
*/
|
||||
@ -267,6 +303,31 @@ export type GetBoardsResponses = {
|
||||
|
||||
export type GetBoardsResponse2 = GetBoardsResponses[keyof GetBoardsResponses];
|
||||
|
||||
export type CreateBoardData = {
|
||||
body: CreateBoardRequest;
|
||||
path?: never;
|
||||
query?: never;
|
||||
url: '/board/';
|
||||
};
|
||||
|
||||
export type CreateBoardErrors = {
|
||||
/**
|
||||
* Validation Error
|
||||
*/
|
||||
422: HttpValidationError;
|
||||
};
|
||||
|
||||
export type CreateBoardError = CreateBoardErrors[keyof CreateBoardErrors];
|
||||
|
||||
export type CreateBoardResponses = {
|
||||
/**
|
||||
* Successful Response
|
||||
*/
|
||||
200: CreateBoardResponse;
|
||||
};
|
||||
|
||||
export type CreateBoardResponse2 = CreateBoardResponses[keyof CreateBoardResponses];
|
||||
|
||||
export type UpdateBoardData = {
|
||||
body: UpdateBoardRequest;
|
||||
path: {
|
||||
|
||||
@ -6,11 +6,35 @@ import { z } from 'zod';
|
||||
* BoardSchema
|
||||
*/
|
||||
export const zBoardSchema = z.object({
|
||||
name: z.string(),
|
||||
id: z.int(),
|
||||
name: z.string(),
|
||||
lexorank: z.string()
|
||||
});
|
||||
|
||||
/**
|
||||
* CreateBoardSchema
|
||||
*/
|
||||
export const zCreateBoardSchema = z.object({
|
||||
name: z.string(),
|
||||
projectId: z.int(),
|
||||
lexorank: z.string()
|
||||
});
|
||||
|
||||
/**
|
||||
* CreateBoardRequest
|
||||
*/
|
||||
export const zCreateBoardRequest = z.object({
|
||||
board: zCreateBoardSchema
|
||||
});
|
||||
|
||||
/**
|
||||
* CreateBoardResponse
|
||||
*/
|
||||
export const zCreateBoardResponse = z.object({
|
||||
message: z.string(),
|
||||
board: zBoardSchema
|
||||
});
|
||||
|
||||
/**
|
||||
* DealSchema
|
||||
*/
|
||||
@ -186,6 +210,17 @@ export const zGetBoardsData = z.object({
|
||||
*/
|
||||
export const zGetBoardsResponse2 = zGetBoardsResponse;
|
||||
|
||||
export const zCreateBoardData = z.object({
|
||||
body: zCreateBoardRequest,
|
||||
path: z.optional(z.never()),
|
||||
query: z.optional(z.never())
|
||||
});
|
||||
|
||||
/**
|
||||
* Successful Response
|
||||
*/
|
||||
export const zCreateBoardResponse2 = zCreateBoardResponse;
|
||||
|
||||
export const zUpdateBoardData = z.object({
|
||||
body: zUpdateBoardRequest,
|
||||
path: z.object({
|
||||
|
||||
Reference in New Issue
Block a user