feat: implement QuestionBank CRUD with pagination and template query

- Add pagination support to findAll (page, limit query params)
- Add findByTemplateId method to service
- Add GET /by-template/:templateId endpoint to controller
- Service already includes CRUD for QuestionBank and QuestionBankItem
This commit is contained in:
Developer
2026-04-23 17:19:11 +08:00
commit 0a9588abb7
492 changed files with 112453 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
import { apiClient } from './apiClient';
import { AssessmentTemplate, CreateTemplateData, UpdateTemplateData } from '../types';
export const templateService = {
async getAll(): Promise<AssessmentTemplate[]> {
const response = await apiClient.get<AssessmentTemplate[]>('/assessment/templates');
return response.data;
},
async getById(id: string): Promise<AssessmentTemplate> {
const response = await apiClient.get<AssessmentTemplate>(`/assessment/templates/${id}`);
return response.data;
},
async create(data: CreateTemplateData): Promise<AssessmentTemplate> {
const response = await apiClient.post<AssessmentTemplate>('/assessment/templates', data);
return response.data;
},
async update(id: string, data: UpdateTemplateData): Promise<AssessmentTemplate> {
const response = await apiClient.put<AssessmentTemplate>(`/assessment/templates/${id}`, data);
return response.data;
},
async delete(id: string): Promise<void> {
await apiClient.delete(`/assessment/templates/${id}`);
},
};