educa-sdk
Version:
A JavaScript SDK for interacting with the Educa backend API (Admin, Staff, and Student methods)
188 lines (175 loc) • 5.1 kB
JavaScript
import request from '../api/request.js';
export const exam = (site_id) => ({
getAssignedExams: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v2/exams/get_assigned_exams/',
params, site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
getExamQuestions: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v2/exams/get_exam_questions/',
params, site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
addExamQuestion: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v2/exams/add_exam_question/',
data: formData,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
generateExamQuestion: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v2/exams/generate_exam_question/',
data: formData,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
generateExamEssay: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v2/exams/generate_exam_essay/',
data: formData,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateExamQuestion: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v2/exams/update_exam_question/',
data: formData,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateExamEssay: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v2/exams/update_exam_essay/',
data: formData,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
deleteExamQuestion: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v2/exams/delete_exam_question/',
data: formData,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
examPDF: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v2/exams/download_exam_questions/',
params, site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
scoreSheet: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v2/exams/score_sheet/',
params: params,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
getExamScores: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v2/exams/get_exam_scores/',
params: params,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateExamScores: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v2/exams/update_exam_scores/',
data: formData,
site_id
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
})