feat(construction): Phase 3.1 카테고리관리 API 연동 완료
- apiClient에 patch 메서드 추가 - apiClient.get에 params 옵션 지원 추가 - updateCategory: PUT → PATCH 수정 - reorderCategories: PUT → POST 수정
This commit is contained in:
@@ -94,7 +94,7 @@ export async function createCategory(data: {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 카테고리 수정
|
* 카테고리 수정
|
||||||
* PUT /api/v1/categories/{id}
|
* PATCH /api/v1/categories/{id}
|
||||||
*/
|
*/
|
||||||
export async function updateCategory(
|
export async function updateCategory(
|
||||||
id: string,
|
id: string,
|
||||||
@@ -105,7 +105,7 @@ export async function updateCategory(
|
|||||||
error?: string;
|
error?: string;
|
||||||
}> {
|
}> {
|
||||||
try {
|
try {
|
||||||
const response = await apiClient.put<ApiCategory>(`/categories/${id}`, {
|
const response = await apiClient.patch<ApiCategory>(`/categories/${id}`, {
|
||||||
name: data.name,
|
name: data.name,
|
||||||
});
|
});
|
||||||
return { success: true, data: transformCategory(response) };
|
return { success: true, data: transformCategory(response) };
|
||||||
@@ -161,7 +161,7 @@ export async function deleteCategory(id: string): Promise<{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 카테고리 순서 변경
|
* 카테고리 순서 변경
|
||||||
* PUT /api/v1/categories/reorder
|
* POST /api/v1/categories/reorder
|
||||||
*/
|
*/
|
||||||
export async function reorderCategories(
|
export async function reorderCategories(
|
||||||
items: { id: string; sort_order: number }[]
|
items: { id: string; sort_order: number }[]
|
||||||
@@ -170,7 +170,7 @@ export async function reorderCategories(
|
|||||||
error?: string;
|
error?: string;
|
||||||
}> {
|
}> {
|
||||||
try {
|
try {
|
||||||
await apiClient.put('/categories/reorder', {
|
await apiClient.post('/categories/reorder', {
|
||||||
items: items.map((item) => ({
|
items: items.map((item) => ({
|
||||||
id: Number(item.id),
|
id: Number(item.id),
|
||||||
sort_order: item.sort_order,
|
sort_order: item.sort_order,
|
||||||
|
|||||||
@@ -102,9 +102,16 @@ export class ApiClient {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* GET 요청
|
* GET 요청
|
||||||
|
* @param endpoint API 엔드포인트
|
||||||
|
* @param options 쿼리 파라미터 등 옵션
|
||||||
*/
|
*/
|
||||||
async get<T>(endpoint: string): Promise<T> {
|
async get<T>(endpoint: string, options?: { params?: Record<string, string> }): Promise<T> {
|
||||||
return this.request<T>(endpoint, { method: 'GET' });
|
let url = endpoint;
|
||||||
|
if (options?.params) {
|
||||||
|
const searchParams = new URLSearchParams(options.params);
|
||||||
|
url = `${endpoint}?${searchParams.toString()}`;
|
||||||
|
}
|
||||||
|
return this.request<T>(url, { method: 'GET' });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -127,6 +134,16 @@ export class ApiClient {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PATCH 요청
|
||||||
|
*/
|
||||||
|
async patch<T>(endpoint: string, data?: unknown): Promise<T> {
|
||||||
|
return this.request<T>(endpoint, {
|
||||||
|
method: 'PATCH',
|
||||||
|
body: data ? JSON.stringify(data) : undefined,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DELETE 요청
|
* DELETE 요청
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user