mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
ready to test
Testing Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
@@ -847,6 +847,62 @@ export function CoursesProvider({ children }) {
|
||||
[request],
|
||||
);
|
||||
|
||||
// =========================================================================
|
||||
// COURSE PRODUCT & CATEGORIES
|
||||
// =========================================================================
|
||||
|
||||
const fetchCourseProduct = useCallback(
|
||||
(courseId) => request(async () => {
|
||||
const { data } = await api.get(`/admin/products/courses/${courseId}/product`);
|
||||
return data.data ?? null;
|
||||
}), [request],
|
||||
);
|
||||
|
||||
const saveCourseProduct = useCallback(
|
||||
(courseId, payload) => request(async () => {
|
||||
const { data } = await api.put(`/admin/products/courses/${courseId}/product`, payload);
|
||||
toast.success("Product listing saved.");
|
||||
return data.data ?? null;
|
||||
}), [request],
|
||||
);
|
||||
|
||||
const removeCourseProduct = useCallback(
|
||||
(courseId) => request(async () => {
|
||||
await api.delete(`/admin/products/courses/${courseId}/product`);
|
||||
toast.success("Product listing removed.");
|
||||
return true;
|
||||
}), [request],
|
||||
);
|
||||
|
||||
const fetchCourseCategories = useCallback(
|
||||
(courseId) => request(async () => {
|
||||
const { data } = await api.get(`/admin/products/courses/${courseId}/categories`);
|
||||
return data.data ?? [];
|
||||
}), [request],
|
||||
);
|
||||
|
||||
const syncCourseCategories = useCallback(
|
||||
(courseId, categoryIds) => request(async () => {
|
||||
const { data } = await api.post(`/admin/products/courses/${courseId}/categories`, { category_ids: categoryIds });
|
||||
toast.success("Categories updated.");
|
||||
return data.data ?? [];
|
||||
}), [request],
|
||||
);
|
||||
|
||||
const fetchInstructors = useCallback(
|
||||
(courseId) => request(async () => {
|
||||
const { data } = await api.get(`${BASE}/${courseId}/instructors`);
|
||||
return data.data ?? [];
|
||||
}), [request],
|
||||
);
|
||||
|
||||
const syncInstructors = useCallback(
|
||||
(courseId, instructors) => request(async () => {
|
||||
await api.put(`${BASE}/${courseId}/instructors`, { instructors });
|
||||
toast.success("Instructors updated.");
|
||||
}), [request],
|
||||
);
|
||||
|
||||
const fetchCourseFieldValues = useCallback(
|
||||
(field) =>
|
||||
request(async () => {
|
||||
@@ -1001,7 +1057,16 @@ export function CoursesProvider({ children }) {
|
||||
// ── fetch field values ─────────────────────────────
|
||||
fetchCourseFieldValues,
|
||||
fetchUnitFieldValues,
|
||||
fetchLessonFieldValues
|
||||
fetchLessonFieldValues,
|
||||
|
||||
// ── course product & categories ────────────────────
|
||||
fetchCourseProduct,
|
||||
saveCourseProduct,
|
||||
removeCourseProduct,
|
||||
fetchCourseCategories,
|
||||
syncCourseCategories,
|
||||
fetchInstructors,
|
||||
syncInstructors,
|
||||
}}>
|
||||
{children}
|
||||
</CoursesContext.Provider>
|
||||
|
||||
Reference in New Issue
Block a user