educa-sdk
Version:
A JavaScript SDK for interacting with the Educa backend API (Admin, Staff, and Student methods)
208 lines (194 loc) • 5.64 kB
JavaScript
import request from '../api/request.js';
export const exam = (token) => ({
getExams: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/exams/exam_list/',
params: params,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
addExam: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/add_exam/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateExam: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/update_exam/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateExamStatus: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/exam_status',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
deleteExam: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/delete_exam/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
getExamQuestions: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/exams/get_exam_questions/',
params: params,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
addExamQuestion: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/add_exam_question/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateExamQuestion: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/update_exam_question/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateExamEssay: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/update_exam_essay/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
deleteExamQuestion: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/delete_exam_question/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
downloadExamPDF: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/exams/download_exam_questions/',
params: params,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
getExamScores: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/exams/get_exam_scores/',
params: params,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateExamScores: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/exams/update_exam_scores/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
})