mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
testing 127.0.0.1 issue
Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
@@ -52,18 +52,8 @@ export function CoursesProvider({ children }) {
|
||||
return await fn();
|
||||
} catch (err) {
|
||||
const message = err?.response?.data?.message ?? "Something went wrong.";
|
||||
if (err.status === 404 && message) toast(message, {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
else toast(message, {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
if (err.status === 404 && message) toast(message);
|
||||
else toast(message);
|
||||
return null;
|
||||
} finally {
|
||||
setLoading(false);
|
||||
@@ -121,12 +111,7 @@ export function CoursesProvider({ children }) {
|
||||
const course = data?.data?.data ?? null;
|
||||
if (course) {
|
||||
setCourses((prev) => [course, ...prev]);
|
||||
toast("Course created successfully.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Course created successfully.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -141,12 +126,7 @@ export function CoursesProvider({ children }) {
|
||||
if (course) {
|
||||
setCourses((prev) => prev.map((c) => (c.course_id === courseId ? course : c)));
|
||||
setCourse(course);
|
||||
toast("Course updated successfully.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Course updated successfully.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -159,12 +139,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}`);
|
||||
setCourses((prev) => prev.filter((c) => c.course_id !== courseId));
|
||||
setCourse((prev) => (prev?.course_id === courseId ? null : prev));
|
||||
toast("Course archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Course archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -175,12 +150,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/bulk`, { data: { ids } });
|
||||
setCourses((prev) => prev.filter((c) => !ids.includes(c.course_id)));
|
||||
toast("Courses archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Courses archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -211,12 +181,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setCourses((prev) => prev.filter((c) => c.course_id !== courseId));
|
||||
toast("Course restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Course restored.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -228,12 +193,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.patch(`${BASE}/restore/bulk`, { ids });
|
||||
setCourses((prev) => prev.filter((c) => !ids.includes(c.course_id)));
|
||||
toast("Courses restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Courses restored.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -245,12 +205,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/permanent`);
|
||||
setCourses((prev) => prev.filter((c) => c.course_id !== courseId));
|
||||
setCourse((prev) => (prev?.course_id === courseId ? null : prev));
|
||||
toast("Course permanently deleted.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Course permanently deleted.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -261,12 +216,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/bulk/permanent`, { data: { ids } });
|
||||
setCourses((prev) => prev.filter((c) => !ids.includes(c.course_id)));
|
||||
toast("Courses permanently deleted.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Courses permanently deleted.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -305,12 +255,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.put(`${BASE}/${courseId}/prerequisites`, { prerequisites });
|
||||
setPrerequisites(prerequisites);
|
||||
toast("Prerequisites updated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Prerequisites updated.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -360,12 +305,7 @@ export function CoursesProvider({ children }) {
|
||||
const unit = data?.data?.data ?? null;
|
||||
if (unit) {
|
||||
setUnits((prev) => [...prev, unit]);
|
||||
toast("Unit created successfully.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Unit created successfully.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -380,12 +320,7 @@ export function CoursesProvider({ children }) {
|
||||
if (unit) {
|
||||
setUnits((prev) => prev.map((u) => (u.unit_id === unitId ? unit : u)));
|
||||
setUnit(unit);
|
||||
toast("Unit updated successfully.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Unit updated successfully.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -398,12 +333,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}`);
|
||||
setUnits((prev) => prev.filter((u) => u.unit_id !== unitId));
|
||||
setUnit((prev) => (prev?.unit_id === unitId ? null : prev));
|
||||
toast("Unit archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Unit archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -414,12 +344,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/bulk`, { data: { ids } });
|
||||
setUnits((prev) => prev.filter((u) => !ids.includes(u.unit_id)));
|
||||
toast("Units archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Units archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -451,12 +376,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setUnits((prev) => prev.filter((u) => u.unit_id !== unitId));
|
||||
toast("Unit restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Unit restored.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -468,12 +388,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.patch(`${BASE}/${courseId}/units/restore/bulk`, { ids } );
|
||||
setUnits((prev) => prev.filter((u) => !ids.includes(u.unit_id)));
|
||||
toast("Units restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Units restored.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -485,12 +400,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}/permanent`);
|
||||
setUnits((prev) => prev.filter((u) => u.unit_id !== unitId));
|
||||
setUnit((prev) => (prev?.unit_id === unitId ? null : prev));
|
||||
toast("Unit permanently deleted.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Unit permanently deleted.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -501,12 +411,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/bulk/permanent`, { data: { ids } });
|
||||
setUnits((prev) => prev.filter((u) => !ids.includes(u.unit_id)));
|
||||
toast("Units permanently deleted.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Units permanently deleted.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -545,12 +450,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setQuiz(result);
|
||||
toast("Quiz created.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Quiz created.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -564,12 +464,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setQuiz(result);
|
||||
toast("Quiz updated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Quiz updated.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -582,12 +477,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}/quiz/${quizId}`, { data: { deletedBy } });
|
||||
setQuiz(null);
|
||||
setQuestions([]);
|
||||
toast("Quiz archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Quiz archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -613,12 +503,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setQuiz(result);
|
||||
toast("Quiz restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Quiz restored.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -647,12 +532,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setQuestions((prev) => [...prev, result]);
|
||||
toast("Question added.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Question added.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -666,12 +546,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setQuestions((prev) => prev.map((q) => (q.question_id === questionId ? result : q)));
|
||||
toast("Question updated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Question updated.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -684,12 +559,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.put(`${BASE}/${courseId}/units/${unitId}/quiz/${quizId}/questions/bulk-sync`, { questions, updatedBy });
|
||||
const result = data?.data?.data ?? [];
|
||||
setQuestions(result);
|
||||
toast("Quiz saved.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Quiz saved.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -700,12 +570,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}/quiz/${quizId}/questions/${questionId}`, { data: { deletedBy } });
|
||||
setQuestions((prev) => prev.filter((q) => q.question_id !== questionId));
|
||||
toast("Question archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Question archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -716,12 +581,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}/quiz/${quizId}/questions/bulk`, { data: { ids, deletedBy } });
|
||||
setQuestions((prev) => prev.filter((q) => !ids.includes(q.question_id)));
|
||||
toast("Questions archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Questions archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -742,12 +602,7 @@ export function CoursesProvider({ children }) {
|
||||
(courseId, unitId, quizId, questionId, restoredBy) =>
|
||||
request(async () => {
|
||||
const { data } = await api.patch(`${BASE}/${courseId}/units/${unitId}/quiz/${quizId}/questions/${questionId}/restore`, { restoredBy });
|
||||
toast("Question restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Question restored.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -757,12 +612,7 @@ export function CoursesProvider({ children }) {
|
||||
(courseId, unitId, quizId, ids, restoredBy) =>
|
||||
request(async () => {
|
||||
const { data } = await api.patch(`${BASE}/${courseId}/units/${unitId}/quiz/${quizId}/questions/restore/bulk`, { ids, restoredBy });
|
||||
toast("Questions restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Questions restored.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -797,12 +647,7 @@ export function CoursesProvider({ children }) {
|
||||
const lesson = data?.data?.data ?? null;
|
||||
if (lesson) {
|
||||
setLessons((prev) => [...prev, lesson]);
|
||||
toast("Lesson created successfully.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lesson created successfully.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -817,12 +662,7 @@ export function CoursesProvider({ children }) {
|
||||
if (lesson) {
|
||||
setLessons((prev) => prev.map((l) => (l.lesson_id === lessonId ? lesson : l)));
|
||||
setLesson(lesson);
|
||||
toast("Lesson updated successfully.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lesson updated successfully.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -835,12 +675,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}/lessons/${lessonId}`);
|
||||
setLessons((prev) => prev.filter((l) => l.lesson_id !== lessonId));
|
||||
setLesson((prev) => (prev?.lesson_id === lessonId ? null : prev));
|
||||
toast("Lesson archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lesson archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -851,12 +686,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}/lessons/bulk`, { data: { ids } });
|
||||
setLessons((prev) => prev.filter((l) => !ids.includes(l.lesson_id)));
|
||||
toast("Lessons archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lessons archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -888,12 +718,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setLessons((prev) => prev.filter((l) => l.lesson_id !== lessonId));
|
||||
toast("Lesson restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lesson restored.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -905,12 +730,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.patch(`${BASE}/${courseId}/units/${unitId}/lessons/restore/bulk`, { ids });
|
||||
setLessons((prev) => prev.filter((l) => !ids.includes(l.lesson_id)));
|
||||
toast("Lessons restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lessons restored.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -922,12 +742,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}/lessons/${lessonId}/permanent`);
|
||||
setLessons((prev) => prev.filter((l) => l.lesson_id !== lessonId));
|
||||
setLesson((prev) => (prev?.lesson_id === lessonId ? null : prev));
|
||||
toast("Lesson permanently deleted.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lesson permanently deleted.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -938,12 +753,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/units/${unitId}/lessons/bulk/permanent`, { data: { ids } });
|
||||
setLessons((prev) => prev.filter((l) => !ids.includes(l.lesson_id)));
|
||||
toast("Lessons permanently deleted.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lessons permanently deleted.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -971,12 +781,7 @@ export function CoursesProvider({ children }) {
|
||||
const page = data?.data?.data ?? null;
|
||||
if (page) {
|
||||
setLessonPage(page);
|
||||
toast("Lesson page saved.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Lesson page saved.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -1006,12 +811,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setAssessment(result);
|
||||
toast("Assessment created.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Assessment created.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -1025,12 +825,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setAssessment(result);
|
||||
toast("Assessment updated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Assessment updated.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -1043,12 +838,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/assessment/${assessmentId}`, { data: { deletedBy } });
|
||||
setAssessment(null);
|
||||
setQuestions([]);
|
||||
toast("Assessment archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Assessment archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -1074,12 +864,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setAssessment(result);
|
||||
toast("Assessment restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Assessment restored.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -1108,12 +893,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setQuestions((prev) => [...prev, result]);
|
||||
toast("Question added.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Question added.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -1127,12 +907,7 @@ export function CoursesProvider({ children }) {
|
||||
const result = data?.data?.data ?? null;
|
||||
if (result) {
|
||||
setQuestions((prev) => prev.map((q) => (q.question_id === questionId ? result : q)));
|
||||
toast("Question updated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Question updated.");
|
||||
}
|
||||
return data;
|
||||
}),
|
||||
@@ -1145,12 +920,7 @@ export function CoursesProvider({ children }) {
|
||||
const { data } = await api.put(`${BASE}/${courseId}/assessment/${assessmentId}/questions/bulk-sync`, { questions, updatedBy });
|
||||
const result = data?.data?.data ?? [];
|
||||
setQuestions(result);
|
||||
toast("Assessment saved.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Assessment saved.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -1161,12 +931,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/assessment/${assessmentId}/questions/${questionId}`, { data: { deletedBy } });
|
||||
setQuestions((prev) => prev.filter((q) => q.question_id !== questionId));
|
||||
toast("Question archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Question archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -1177,12 +942,7 @@ export function CoursesProvider({ children }) {
|
||||
request(async () => {
|
||||
const { data } = await api.delete(`${BASE}/${courseId}/assessment/${assessmentId}/questions/bulk`, { data: { ids, deletedBy } });
|
||||
setQuestions((prev) => prev.filter((q) => !ids.includes(q.question_id)));
|
||||
toast("Questions archived.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Questions archived.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -1203,12 +963,7 @@ export function CoursesProvider({ children }) {
|
||||
(courseId, assessmentId, questionId, restoredBy) =>
|
||||
request(async () => {
|
||||
const { data } = await api.patch(`${BASE}/${courseId}/assessment/${assessmentId}/questions/${questionId}/restore`, { restoredBy });
|
||||
toast("Question restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Question restored.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -1218,12 +973,7 @@ export function CoursesProvider({ children }) {
|
||||
(courseId, assessmentId, ids, restoredBy) =>
|
||||
request(async () => {
|
||||
const { data } = await api.patch(`${BASE}/${courseId}/assessment/${assessmentId}/questions/restore/bulk`, { ids, restoredBy });
|
||||
toast("Questions restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Questions restored.");
|
||||
return data;
|
||||
}),
|
||||
[request],
|
||||
@@ -1280,12 +1030,7 @@ export function CoursesProvider({ children }) {
|
||||
const saveCourseProduct = useCallback(
|
||||
(courseId, payload) => request(async () => {
|
||||
const { data } = await api.put(`/admin/products/courses/${courseId}/product`, payload);
|
||||
toast("Product listing saved.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Product listing saved.");
|
||||
return data.data ?? null;
|
||||
}), [request],
|
||||
);
|
||||
@@ -1293,12 +1038,7 @@ export function CoursesProvider({ children }) {
|
||||
const removeCourseProduct = useCallback(
|
||||
(courseId) => request(async () => {
|
||||
await api.delete(`/admin/products/courses/${courseId}/product`);
|
||||
toast("Product listing removed.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Product listing removed.");
|
||||
return true;
|
||||
}), [request],
|
||||
);
|
||||
@@ -1313,12 +1053,7 @@ export function CoursesProvider({ children }) {
|
||||
const syncCourseCategories = useCallback(
|
||||
(courseId, categoryIds) => request(async () => {
|
||||
const { data } = await api.post(`/admin/products/courses/${courseId}/categories`, { category_ids: categoryIds });
|
||||
toast("Categories updated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Categories updated.");
|
||||
return data.data ?? [];
|
||||
}), [request],
|
||||
);
|
||||
@@ -1333,12 +1068,7 @@ export function CoursesProvider({ children }) {
|
||||
const syncInstructors = useCallback(
|
||||
(courseId, instructors) => request(async () => {
|
||||
await api.put(`${BASE}/${courseId}/instructors`, { instructors });
|
||||
toast("Instructors updated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Instructors updated.");
|
||||
}), [request],
|
||||
);
|
||||
|
||||
@@ -1352,12 +1082,7 @@ export function CoursesProvider({ children }) {
|
||||
const syncCourseAchievements = useCallback(
|
||||
(courseId, achievement_keys) => request(async () => {
|
||||
await api.put(`${BASE}/${courseId}/achievements`, { achievement_keys });
|
||||
toast("Rewards updated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
toast("Rewards updated.");
|
||||
}), [request],
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user