61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import { client } from "@/shared/api";
|
|
import { ENDPOINT } from "@/shared/config";
|
|
import type {
|
|
Board,
|
|
BoardFormData,
|
|
BoardList,
|
|
BoardParams,
|
|
BoardPopupList,
|
|
BoardPopupParams,
|
|
BoardService,
|
|
} from "../model/board-interface";
|
|
|
|
export class BoardApiService implements BoardService {
|
|
public async getBoardList(params: BoardParams): Promise<BoardList> {
|
|
const response = await client.get<BoardList>(
|
|
`${ENDPOINT.BOARD_SERVICE.BBS}`,
|
|
{ params },
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async getBoardPopupList(
|
|
params: BoardPopupParams,
|
|
): Promise<BoardPopupList> {
|
|
const response = await client.get<BoardPopupList>(
|
|
`${ENDPOINT.BOARD_SERVICE.BBS}`,
|
|
{ params },
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async getBoardInfo(bbsId: string): Promise<Board> {
|
|
const response = await client.get<Board>(
|
|
`${ENDPOINT.BOARD_SERVICE.BBS}/${bbsId}`,
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async createBoard(data: BoardFormData): Promise<Board> {
|
|
const response = await client.post<Board>(
|
|
`${ENDPOINT.BOARD_SERVICE.BBS}`,
|
|
data,
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async updateBoard(bbsId: string, data: BoardFormData): Promise<Board> {
|
|
const response = await client.put<Board>(
|
|
`${ENDPOINT.BOARD_SERVICE.BBS}/${bbsId}`,
|
|
data,
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async deleteBoard(bbsId: string): Promise<void> {
|
|
await client.delete(`${ENDPOINT.BOARD_SERVICE.BBS}/${bbsId}`);
|
|
}
|
|
}
|
|
|
|
export const BoardApi = new BoardApiService();
|