diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index e177e6b..dd86848 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -12,31 +12,16 @@ import ManageTask from "./pages/admin/ManageTask.jsx";
import AttendanceCode from "./pages/admin/AttendanceCode";
import Attendance from "./pages/generation/Attendance";
import AdminStudentAttendance from "./pages/admin/AdminStudentAttendance";
-<<<<<<< HEAD
import AdminStudentAssignment from "./pages/admin/AdminStudentAssignment.jsx";
-=======
import RequireAuth from "./components/RequireAuth";
import RequireAdmin from "./components/RequireAdmin";
->>>>>>> 08242a5045ea08b68c40b107cc871f8b3c3446eb
function App() {
return (
} />
} />
-<<<<<<< HEAD
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
-=======
}
/>
->>>>>>> 08242a5045ea08b68c40b107cc871f8b3c3446eb
);
diff --git a/frontend/src/api/assignment.js b/frontend/src/api/assignment.js
index 323730a..2af21aa 100644
--- a/frontend/src/api/assignment.js
+++ b/frontend/src/api/assignment.js
@@ -13,4 +13,19 @@ export const fetchAssignmentsByUser = async (userId) => {
console.error("과제 데이터 불러오기 실패:", err);
throw err;
}
-};
\ No newline at end of file
+};
+
+
+export const submitAssignmentStatus = async (userId, assignmentId, status) => {
+ return api.post(`/api/admin/users/${userId}/assignments/${assignmentId}/submission`, {
+ assignmentId,
+ userId,
+ status,
+ });
+};
+
+export const updateAssignmentStatus = async (userId, assignmentId, status) => {
+ return api.put(`/api/admin/users/${userId}/assignments/${assignmentId}/submission`, {
+ status,
+ });
+};
diff --git a/frontend/src/pages/admin/AdminStudentAssignment.jsx b/frontend/src/pages/admin/AdminStudentAssignment.jsx
index 2114cb4..35d234e 100644
--- a/frontend/src/pages/admin/AdminStudentAssignment.jsx
+++ b/frontend/src/pages/admin/AdminStudentAssignment.jsx
@@ -5,6 +5,7 @@ import WeeklyOpenBlock from "../../components/WeeklyOpenBlock";
import AssignmentInfoBlock from "../../components/AssignmentInfoBlock";
import api from "../../api/api";
import styles from "./AdminStudentAssignment.module.css";
+import { submitAssignmentStatus, updateAssignmentStatus } from "../../api/assignments";
const AdminStudentAssignment = () => {
const { studentId, week } = useParams();
@@ -14,7 +15,7 @@ const AdminStudentAssignment = () => {
const [selectedWeekLabel, setSelectedWeekLabel] = useState(null);
useEffect(() => {
- api.get(`/admin/users/${studentId}`).then((res) => {
+ api.get(`/admin/users/${userId}`).then((res) => {
setStudentInfo(res.data.data);
});
@@ -62,13 +63,33 @@ const AdminStudentAssignment = () => {
task.modified = true;
setWeeks(updated);
};
-
+/*
const handleSave = async (taskId, status) => {
await api.put("/admin/assignment/status", {
assignmentId: taskId,
status,
});
};
+*/
+const handleSave = async (taskId, status) => {
+ const userId = parseInt(studentId); // 문자열일 수 있으니 숫자로 변환
+
+ try {
+ // PUT 요청 시도 (기존 과제 수정)
+ await updateAssignmentStatus(userId, taskId, status);
+ alert("과제 상태가 수정되었습니다.");
+ } catch (err) {
+ console.warn("PUT 실패, POST 시도");
+ try {
+ // 없으면 POST 요청 (새 과제 등록)
+ await submitAssignmentStatus(userId, taskId, status);
+ alert("과제 상태가 등록되었습니다.");
+ } catch (err) {
+ alert("상태 저장 실패");
+ console.error(err);
+ }
+ }
+};
return (