Skip to content

Commit 8328505

Browse files
committed
[Fix]merge& adminassignment 연결
1 parent b399b35 commit 8328505

File tree

3 files changed

+39
-19
lines changed

3 files changed

+39
-19
lines changed

frontend/src/App.jsx

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,16 @@ import ManageTask from "./pages/admin/ManageTask.jsx";
1212
import AttendanceCode from "./pages/admin/AttendanceCode";
1313
import Attendance from "./pages/generation/Attendance";
1414
import AdminStudentAttendance from "./pages/admin/AdminStudentAttendance";
15-
<<<<<<< HEAD
1615
import AdminStudentAssignment from "./pages/admin/AdminStudentAssignment.jsx";
17-
=======
1816
import RequireAuth from "./components/RequireAuth";
1917
import RequireAdmin from "./components/RequireAdmin";
2018

21-
>>>>>>> 08242a5045ea08b68c40b107cc871f8b3c3446eb
2219
function App() {
2320
return (
2421
<BrowserRouter>
2522
<Routes>
2623
<Route path="/" element={<Intro />} />
2724
<Route path="/login" element={<Login />} />
28-
<<<<<<< HEAD
29-
<Route path="/home" element={<Home />} />
30-
<Route path="/assignment" element={<Assignment />} />
31-
<Route path="/attendance" element={<Attendance />} />
32-
<Route path="/deposit" element={<Deposit />} />
33-
<Route path="/admin" element={<Admin />} />
34-
<Route path="/magagestudent" element={<MagageStudent />} />
35-
<Route path="/magagetask" element={<ManageTask />} />
36-
<Route path="/attendancecode" element={<AttendanceCode />} />
37-
<Route path="/admin/attendance/:studentId" element={<AdminStudentAttendance />} />
38-
<Route path="/admin/managestudent/:studentId" element={<AdminStudentAssignment />} />
39-
=======
4025
<Route
4126
path="/home"
4227
element={
@@ -117,7 +102,6 @@ function App() {
117102
</RequireAdmin>
118103
}
119104
/>
120-
>>>>>>> 08242a5045ea08b68c40b107cc871f8b3c3446eb
121105
</Routes>
122106
</BrowserRouter>
123107
);

frontend/src/api/assignment.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,19 @@ export const fetchAssignmentsByUser = async (userId) => {
1313
console.error("과제 데이터 불러오기 실패:", err);
1414
throw err;
1515
}
16-
};
16+
};
17+
18+
19+
export const submitAssignmentStatus = async (userId, assignmentId, status) => {
20+
return api.post(`/api/admin/users/${userId}/assignments/${assignmentId}/submission`, {
21+
assignmentId,
22+
userId,
23+
status,
24+
});
25+
};
26+
27+
export const updateAssignmentStatus = async (userId, assignmentId, status) => {
28+
return api.put(`/api/admin/users/${userId}/assignments/${assignmentId}/submission`, {
29+
status,
30+
});
31+
};

frontend/src/pages/admin/AdminStudentAssignment.jsx

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import WeeklyOpenBlock from "../../components/WeeklyOpenBlock";
55
import AssignmentInfoBlock from "../../components/AssignmentInfoBlock";
66
import api from "../../api/api";
77
import styles from "./AdminStudentAssignment.module.css";
8+
import { submitAssignmentStatus, updateAssignmentStatus } from "../../api/assignments";
89

910
const AdminStudentAssignment = () => {
1011
const { studentId, week } = useParams();
@@ -14,7 +15,7 @@ const AdminStudentAssignment = () => {
1415
const [selectedWeekLabel, setSelectedWeekLabel] = useState(null);
1516

1617
useEffect(() => {
17-
api.get(`/admin/users/${studentId}`).then((res) => {
18+
api.get(`/admin/users/${userId}`).then((res) => {
1819
setStudentInfo(res.data.data);
1920
});
2021

@@ -62,13 +63,33 @@ const AdminStudentAssignment = () => {
6263
task.modified = true;
6364
setWeeks(updated);
6465
};
65-
66+
/*
6667
const handleSave = async (taskId, status) => {
6768
await api.put("/admin/assignment/status", {
6869
assignmentId: taskId,
6970
status,
7071
});
7172
};
73+
*/
74+
const handleSave = async (taskId, status) => {
75+
const userId = parseInt(studentId); // 문자열일 수 있으니 숫자로 변환
76+
77+
try {
78+
// PUT 요청 시도 (기존 과제 수정)
79+
await updateAssignmentStatus(userId, taskId, status);
80+
alert("과제 상태가 수정되었습니다.");
81+
} catch (err) {
82+
console.warn("PUT 실패, POST 시도");
83+
try {
84+
// 없으면 POST 요청 (새 과제 등록)
85+
await submitAssignmentStatus(userId, taskId, status);
86+
alert("과제 상태가 등록되었습니다.");
87+
} catch (err) {
88+
alert("상태 저장 실패");
89+
console.error(err);
90+
}
91+
}
92+
};
7293

7394
return (
7495
<div className={styles.container}>

0 commit comments

Comments
 (0)