educa-sdk
Version:
A JavaScript SDK for interacting with the Educa backend API (Admin, Staff, and Student methods)
210 lines (194 loc) • 5.65 kB
JavaScript
import request from '../api/request.js';
export const course = (token) => ({
getCourses: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/courses/course_list/',
params: params,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
addCourse: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/add_course/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateCourse: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/update_course/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
deleteCourse: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/delete_course/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
getCourseSyllabus: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/courses/get_course_syllabus/',
params: params,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
addSyllabus: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/add_syllabus/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateSyllabus: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/update_syllabus/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
downloadSyllabus: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/courses/download_syllabus/',
params: params,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
deleteSyllabus: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/delete_syllabus/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
getSyllabusTopics: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/courses/get_topics/',
params: params,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
addSyllabusTopic: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/add_topic/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
updateSyllabusTopic: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/update_topic/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
deleteSyllabusTopic: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/courses/delete_topic/',
data: formData,
token: token
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
})