This commit is contained in:
2025-12-29 16:58:56 +03:00
commit 524f3ebf23
62 changed files with 30925 additions and 0 deletions

View File

@ -0,0 +1,54 @@
import { api } from './api';
import type { Idea, CreateIdeaDto, UpdateIdeaDto, IdeaStatus, IdeaPriority } from '../types/idea';
export interface QueryIdeasParams {
status?: IdeaStatus;
priority?: IdeaPriority;
module?: string;
search?: string;
sortBy?: string;
sortOrder?: 'ASC' | 'DESC';
page?: number;
limit?: number;
}
export interface PaginatedResponse<T> {
data: T[];
meta: {
total: number;
page: number;
limit: number;
totalPages: number;
};
}
export const ideasApi = {
getAll: async (params?: QueryIdeasParams): Promise<PaginatedResponse<Idea>> => {
const { data } = await api.get<PaginatedResponse<Idea>>('/ideas', { params });
return data;
},
getOne: async (id: string): Promise<Idea> => {
const { data } = await api.get<Idea>(`/ideas/${id}`);
return data;
},
create: async (dto: CreateIdeaDto): Promise<Idea> => {
const { data } = await api.post<Idea>('/ideas', dto);
return data;
},
update: async (id: string, dto: UpdateIdeaDto): Promise<Idea> => {
const { data } = await api.patch<Idea>(`/ideas/${id}`, dto);
return data;
},
delete: async (id: string): Promise<void> => {
await api.delete(`/ideas/${id}`);
},
getModules: async (): Promise<string[]> => {
const { data } = await api.get<string[]>('/ideas/modules');
return data;
},
};