feat: status editing and deleting

This commit is contained in:
2025-08-07 15:46:11 +04:00
parent 7e2dd9763b
commit e29664ecc5
12 changed files with 616 additions and 69 deletions

View File

@ -1,8 +1,8 @@
// This file is auto-generated by @hey-api/openapi-ts
import { type Options, getBoards, createBoard, deleteBoard, updateBoard, getDeals, updateDeal, getProjects, getStatuses, updateStatus } from '../sdk.gen';
import { type Options, getBoards, createBoard, deleteBoard, updateBoard, getDeals, updateDeal, getProjects, getStatuses, createStatus, deleteStatus, updateStatus } from '../sdk.gen';
import { queryOptions, type UseMutationOptions } from '@tanstack/react-query';
import type { GetBoardsData, CreateBoardData, CreateBoardError, CreateBoardResponse2, DeleteBoardData, DeleteBoardError, DeleteBoardResponse2, UpdateBoardData, UpdateBoardError, UpdateBoardResponse2, GetDealsData, UpdateDealData, UpdateDealError, UpdateDealResponse2, GetProjectsData, GetStatusesData, UpdateStatusData, UpdateStatusError, UpdateStatusResponse2 } from '../types.gen';
import type { GetBoardsData, CreateBoardData, CreateBoardError, CreateBoardResponse2, DeleteBoardData, DeleteBoardError, DeleteBoardResponse2, UpdateBoardData, UpdateBoardError, UpdateBoardResponse2, GetDealsData, UpdateDealData, UpdateDealError, UpdateDealResponse2, GetProjectsData, GetStatusesData, CreateStatusData, CreateStatusError, CreateStatusResponse2, DeleteStatusData, DeleteStatusError, DeleteStatusResponse2, UpdateStatusData, UpdateStatusError, UpdateStatusResponse2 } from '../types.gen';
import type { AxiosError } from 'axios';
import { client as _heyApiClient } from '../client.gen';
@ -205,6 +205,60 @@ export const getStatusesOptions = (options: Options<GetStatusesData>) => {
});
};
export const createStatusQueryKey = (options: Options<CreateStatusData>) => createQueryKey('createStatus', options);
/**
* Create Status
*/
export const createStatusOptions = (options: Options<CreateStatusData>) => {
return queryOptions({
queryFn: async ({ queryKey, signal }) => {
const { data } = await createStatus({
...options,
...queryKey[0],
signal,
throwOnError: true
});
return data;
},
queryKey: createStatusQueryKey(options)
});
};
/**
* Create Status
*/
export const createStatusMutation = (options?: Partial<Options<CreateStatusData>>): UseMutationOptions<CreateStatusResponse2, AxiosError<CreateStatusError>, Options<CreateStatusData>> => {
const mutationOptions: UseMutationOptions<CreateStatusResponse2, AxiosError<CreateStatusError>, Options<CreateStatusData>> = {
mutationFn: async (localOptions) => {
const { data } = await createStatus({
...options,
...localOptions,
throwOnError: true
});
return data;
}
};
return mutationOptions;
};
/**
* Delete Status
*/
export const deleteStatusMutation = (options?: Partial<Options<DeleteStatusData>>): UseMutationOptions<DeleteStatusResponse2, AxiosError<DeleteStatusError>, Options<DeleteStatusData>> => {
const mutationOptions: UseMutationOptions<DeleteStatusResponse2, AxiosError<DeleteStatusError>, Options<DeleteStatusData>> = {
mutationFn: async (localOptions) => {
const { data } = await deleteStatus({
...options,
...localOptions,
throwOnError: true
});
return data;
}
};
return mutationOptions;
};
/**
* Update Status
*/

View File

@ -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, CreateBoardData, CreateBoardResponses, CreateBoardErrors, DeleteBoardData, DeleteBoardResponses, DeleteBoardErrors, 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, zDeleteBoardData, zDeleteBoardResponse2, zUpdateBoardData, zUpdateBoardResponse2, zGetDealsData, zGetDealsResponse2, zUpdateDealData, zUpdateDealResponse2, zGetProjectsData, zGetProjectsResponse2, zGetStatusesData, zGetStatusesResponse2, zUpdateStatusData, zUpdateStatusResponse2 } from './zod.gen';
import type { GetBoardsData, GetBoardsResponses, GetBoardsErrors, CreateBoardData, CreateBoardResponses, CreateBoardErrors, DeleteBoardData, DeleteBoardResponses, DeleteBoardErrors, UpdateBoardData, UpdateBoardResponses, UpdateBoardErrors, GetDealsData, GetDealsResponses, GetDealsErrors, UpdateDealData, UpdateDealResponses, UpdateDealErrors, GetProjectsData, GetProjectsResponses, GetStatusesData, GetStatusesResponses, GetStatusesErrors, CreateStatusData, CreateStatusResponses, CreateStatusErrors, DeleteStatusData, DeleteStatusResponses, DeleteStatusErrors, UpdateStatusData, UpdateStatusResponses, UpdateStatusErrors } from './types.gen';
import { zGetBoardsData, zGetBoardsResponse2, zCreateBoardData, zCreateBoardResponse2, zDeleteBoardData, zDeleteBoardResponse2, zUpdateBoardData, zUpdateBoardResponse2, zGetDealsData, zGetDealsResponse2, zUpdateDealData, zUpdateDealResponse2, zGetProjectsData, zGetProjectsResponse2, zGetStatusesData, zGetStatusesResponse2, zCreateStatusData, zCreateStatusResponse2, zDeleteStatusData, zDeleteStatusResponse2, 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> & {
@ -167,6 +167,44 @@ export const getStatuses = <ThrowOnError extends boolean = false>(options: Optio
});
};
/**
* Create Status
*/
export const createStatus = <ThrowOnError extends boolean = false>(options: Options<CreateStatusData, ThrowOnError>) => {
return (options.client ?? _heyApiClient).post<CreateStatusResponses, CreateStatusErrors, ThrowOnError>({
requestValidator: async (data) => {
return await zCreateStatusData.parseAsync(data);
},
responseType: 'json',
responseValidator: async (data) => {
return await zCreateStatusResponse2.parseAsync(data);
},
url: '/status/',
...options,
headers: {
'Content-Type': 'application/json',
...options.headers
}
});
};
/**
* Delete Status
*/
export const deleteStatus = <ThrowOnError extends boolean = false>(options: Options<DeleteStatusData, ThrowOnError>) => {
return (options.client ?? _heyApiClient).delete<DeleteStatusResponses, DeleteStatusErrors, ThrowOnError>({
requestValidator: async (data) => {
return await zDeleteStatusData.parseAsync(data);
},
responseType: 'json',
responseValidator: async (data) => {
return await zDeleteStatusResponse2.parseAsync(data);
},
url: '/status/{statusId}',
...options
});
};
/**
* Update Status
*/

View File

@ -54,6 +54,42 @@ export type CreateBoardSchema = {
lexorank: string;
};
/**
* CreateStatusRequest
*/
export type CreateStatusRequest = {
status: CreateStatusSchema;
};
/**
* CreateStatusResponse
*/
export type CreateStatusResponse = {
/**
* Message
*/
message: string;
status: StatusSchema;
};
/**
* CreateStatusSchema
*/
export type CreateStatusSchema = {
/**
* Name
*/
name: string;
/**
* Boardid
*/
boardId: number;
/**
* Lexorank
*/
lexorank: string;
};
/**
* DealSchema
*/
@ -86,6 +122,16 @@ export type DeleteBoardResponse = {
message: string;
};
/**
* DeleteStatusResponse
*/
export type DeleteStatusResponse = {
/**
* Message
*/
message: string;
};
/**
* GetBoardsResponse
*/
@ -154,14 +200,14 @@ export type ProjectSchema = {
* StatusSchema
*/
export type StatusSchema = {
/**
* Name
*/
name: string;
/**
* Id
*/
id: number;
/**
* Name
*/
name: string;
/**
* Lexorank
*/
@ -504,6 +550,61 @@ export type GetStatusesResponses = {
export type GetStatusesResponse2 = GetStatusesResponses[keyof GetStatusesResponses];
export type CreateStatusData = {
body: CreateStatusRequest;
path?: never;
query?: never;
url: '/status/';
};
export type CreateStatusErrors = {
/**
* Validation Error
*/
422: HttpValidationError;
};
export type CreateStatusError = CreateStatusErrors[keyof CreateStatusErrors];
export type CreateStatusResponses = {
/**
* Successful Response
*/
200: CreateStatusResponse;
};
export type CreateStatusResponse2 = CreateStatusResponses[keyof CreateStatusResponses];
export type DeleteStatusData = {
body?: never;
path: {
/**
* Statusid
*/
statusId: number;
};
query?: never;
url: '/status/{statusId}';
};
export type DeleteStatusErrors = {
/**
* Validation Error
*/
422: HttpValidationError;
};
export type DeleteStatusError = DeleteStatusErrors[keyof DeleteStatusErrors];
export type DeleteStatusResponses = {
/**
* Successful Response
*/
200: DeleteStatusResponse;
};
export type DeleteStatusResponse2 = DeleteStatusResponses[keyof DeleteStatusResponses];
export type UpdateStatusData = {
body: UpdateStatusRequest;
path: {

View File

@ -35,6 +35,39 @@ export const zCreateBoardResponse = z.object({
board: zBoardSchema
});
/**
* CreateStatusSchema
*/
export const zCreateStatusSchema = z.object({
name: z.string(),
boardId: z.int(),
lexorank: z.string()
});
/**
* CreateStatusRequest
*/
export const zCreateStatusRequest = z.object({
status: zCreateStatusSchema
});
/**
* StatusSchema
*/
export const zStatusSchema = z.object({
id: z.int(),
name: z.string(),
lexorank: z.string()
});
/**
* CreateStatusResponse
*/
export const zCreateStatusResponse = z.object({
message: z.string(),
status: zStatusSchema
});
/**
* DealSchema
*/
@ -52,6 +85,13 @@ export const zDeleteBoardResponse = z.object({
message: z.string()
});
/**
* DeleteStatusResponse
*/
export const zDeleteStatusResponse = z.object({
message: z.string()
});
/**
* GetBoardsResponse
*/
@ -81,15 +121,6 @@ export const zGetProjectsResponse = z.object({
projects: z.array(zProjectSchema)
});
/**
* StatusSchema
*/
export const zStatusSchema = z.object({
name: z.string(),
id: z.int(),
lexorank: z.string()
});
/**
* GetStatusesResponse
*/
@ -304,6 +335,30 @@ export const zGetStatusesData = z.object({
*/
export const zGetStatusesResponse2 = zGetStatusesResponse;
export const zCreateStatusData = z.object({
body: zCreateStatusRequest,
path: z.optional(z.never()),
query: z.optional(z.never())
});
/**
* Successful Response
*/
export const zCreateStatusResponse2 = zCreateStatusResponse;
export const zDeleteStatusData = z.object({
body: z.optional(z.never()),
path: z.object({
statusId: z.int()
}),
query: z.optional(z.never())
});
/**
* Successful Response
*/
export const zDeleteStatusResponse2 = zDeleteStatusResponse;
export const zUpdateStatusData = z.object({
body: zUpdateStatusRequest,
path: z.object({