|
25 | 25 | // Route đăng nhập cho sinh viên
|
26 | 26 | Route::post('/sinhvien/login', [SinhVienAuthController::class, 'login']);
|
27 | 27 |
|
28 |
| -// Sinh viên |
29 |
| -Route::middleware('auth:sanctum')->group(function () { |
| 28 | +// xác thực bằng middleware auth:sanctum |
| 29 | +Route::middleware([ApiAuthenticate::class])->group(function () { |
| 30 | + // Sinh viên |
30 | 31 | Route::prefix('sinhvien')->group(function () {
|
31 | 32 | Route::get('/', [SinhVienController::class, 'apiIndex']);
|
32 | 33 | Route::get('/{id}', [SinhVienController::class, 'apiShow']);
|
33 | 34 | Route::post('/', [SinhVienController::class, 'apiStore']);
|
34 | 35 | Route::put('/{id}', [SinhVienController::class, 'apiUpdate']);
|
35 | 36 | Route::delete('/{id}', [SinhVienController::class, 'apiDestroy']);
|
36 | 37 | Route::get('/search', [SinhVienController::class, 'apiSearch']);
|
| 38 | + |
| 39 | + // kết quả |
| 40 | + Route::get('/{sinhvienId}/ketqua/{dethiId}', [KetQuaController::class, 'show'])->name('api.ketqua.show'); |
37 | 41 | });
|
38 |
| -}); |
39 | 42 |
|
40 |
| -// xác thực bằng middleware auth:sanctum |
41 |
| -// khoa |
42 |
| -Route::middleware([ApiAuthenticate::class])->group(function () { |
| 43 | + // khoa |
43 | 44 | Route::prefix('khoa')->group(function () {
|
44 | 45 | Route::get('/', [KhoaController::class, 'apiIndex']);
|
45 | 46 | Route::get('//{id}', [KhoaController::class, 'apiShow']);
|
|
48 | 49 | Route::delete('/{id}', [KhoaController::class, 'apiDestroy']);
|
49 | 50 | Route::get('?search', [KhoaController::class, 'apiSearch']);
|
50 | 51 | });
|
51 |
| -}); |
52 |
| - |
53 |
| -// Nghành |
54 |
| -Route::get('/nganh', [NganhController::class, 'apiIndex']); |
55 |
| -Route::get('/nganh/{id}', [NganhController::class, 'apiShow']); |
56 |
| -Route::post('/nganh', [NganhController::class, 'apiStore']); |
57 |
| -Route::put('/nganh/{id}', [NganhController::class, 'apiUpdate']); |
58 |
| -Route::delete('/nganh/{id}', [NganhController::class, 'apiDestroy']); |
59 |
| -Route::get('/nganh?search', [NganhController::class, 'apiSearch']); |
60 |
| - |
61 |
| -// lớp |
62 |
| -Route::get('/lop', [LopController::class, 'apiIndex']); |
63 |
| -Route::get('/lop/timkiem', [LopController::class, 'apiSearch']); |
64 |
| -Route::get('/lop/{id}', [LopController::class, 'apiShow']); |
65 |
| -Route::post('/lop', [LopController::class, 'apiStore']); |
66 |
| -Route::put('/lop/{id}', [LopController::class, 'apiUpdate']); |
67 |
| -Route::delete('/lop/{id}', [LopController::class, 'apiDestroy']); |
68 |
| - |
69 |
| - |
70 |
| -// Môn học |
71 |
| -Route::prefix('monhoc')->group(function () { |
72 |
| - Route::get('/', [MonHocController::class, 'apiIndex']); |
73 |
| - Route::get('/{id}', [MonHocController::class, 'apiShow']); |
74 |
| - Route::post('/', [MonHocController::class, 'apiStore']); |
75 |
| - Route::put('/{id}', [MonHocController::class, 'apiUpdate']); |
76 |
| - Route::delete('/{id}', [MonHocController::class, 'apiDestroy']); |
77 |
| -}); |
78 |
| - |
79 |
| -// câu hỏi |
80 |
| -Route::middleware('auth:sanctum')->group(function () { |
81 |
| -Route::get('/cauhoi', [CauHoiController::class, 'apiIndex']); |
82 |
| -Route::get('/cauhoi/{id}', [CauHoiController::class, 'apiShow']); |
83 |
| -Route::post('/cauhoi', [CauHoiController::class, 'apiStore']); |
84 |
| -Route::put('/cauhoi/{id}', [CauHoiController::class, 'apiUpdate']); |
85 |
| -Route::delete('/cauhoi/{id}', [CauHoiController::class, 'apiDestroy']); |
86 |
| - |
87 |
| -// đáp án |
88 |
| -Route::get('/cauhoi/{cauHoiId}/dapan', [DapAnController::class, 'apiIndex']); |
89 |
| -Route::get('/cauhoi/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiShow']); |
90 |
| -Route::post('/cauhoi/{cauHoiId}/dapan', [DapAnController::class, 'apiStore']); |
91 |
| -Route::put('/cauhoi/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiUpdate']); |
92 |
| -Route::delete('/cauhoi/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiDestroy']); |
93 |
| -}); |
94 |
| - |
95 |
| -// kỳ thi |
96 |
| -Route::prefix('kythi')->group(function () { |
97 |
| - Route::get('/', [KyThiController::class, 'apiIndex']); |
98 |
| - Route::get('/{id}', [KyThiController::class, 'apiShow']); |
99 |
| - Route::post('/', [KyThiController::class, 'apiStore']); |
100 |
| - Route::put('/{id}', [KyThiController::class, 'apiUpdate']); |
101 |
| - Route::delete('/{id}', [KyThiController::class, 'apiDestroy']); |
102 |
| -}); |
103 |
| - |
104 |
| -// ca thi |
105 |
| -Route::get('/kythi/{kythi_id}/cathi', [CaThiController::class, 'apiIndex']); |
106 |
| -Route::post('/kythi/{kythi_id}/cathi', [CaThiController::class, 'apiStore']); |
107 |
| -Route::get('/kythi/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiShow']); |
108 |
| -Route::put('/kythi/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiUpdate']); |
109 |
| -Route::delete('/kythi/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiDestroy']); |
110 |
| - |
111 |
| -// đề thi |
112 |
| -Route::prefix('dethi')->group(function () { |
113 |
| - Route::get('/', [DeThiController::class, 'apiIndex']); |
114 |
| - Route::get('/{id}', [DeThiController::class, 'apiShow']); |
115 |
| - Route::post('/', [DeThiController::class, 'apiStore']); |
116 |
| - Route::put('/{id}', [DeThiController::class, 'apiUpdate']); |
117 |
| - Route::delete('/{id}', [DeThiController::class, 'apiDestroy']); |
118 |
| -}); |
| 52 | + |
| 53 | + // Nghành |
| 54 | + Route::prefix('nganh')->group(function () { |
| 55 | + Route::get('/', [NganhController::class, 'apiIndex']); |
| 56 | + Route::get('/{id}', [NganhController::class, 'apiShow']); |
| 57 | + Route::post('/', [NganhController::class, 'apiStore']); |
| 58 | + Route::put('/{id}', [NganhController::class, 'apiUpdate']); |
| 59 | + Route::delete('/{id}', [NganhController::class, 'apiDestroy']); |
| 60 | + Route::get('?search', [NganhController::class, 'apiSearch']); |
| 61 | + }); |
| 62 | + |
| 63 | + // lớp |
| 64 | + Route::prefix('lop')->group(function () { |
| 65 | + Route::get('/', [LopController::class, 'apiIndex']); |
| 66 | + Route::get('/timkiem', [LopController::class, 'apiSearch']); |
| 67 | + Route::get('/{id}', [LopController::class, 'apiShow']); |
| 68 | + Route::post('/', [LopController::class, 'apiStore']); |
| 69 | + Route::put('/{id}', [LopController::class, 'apiUpdate']); |
| 70 | + Route::delete('/{id}', [LopController::class, 'apiDestroy']); |
| 71 | + }); |
| 72 | + |
| 73 | + // Môn học |
| 74 | + Route::prefix('monhoc')->group(function () { |
| 75 | + Route::get('/', [MonHocController::class, 'apiIndex']); |
| 76 | + Route::get('/{id}', [MonHocController::class, 'apiShow']); |
| 77 | + Route::post('/', [MonHocController::class, 'apiStore']); |
| 78 | + Route::put('/{id}', [MonHocController::class, 'apiUpdate']); |
| 79 | + Route::delete('/{id}', [MonHocController::class, 'apiDestroy']); |
| 80 | + }); |
| 81 | + |
| 82 | + // câu hỏi |
| 83 | + Route::prefix('cauhoi')->group(function () { |
| 84 | + Route::get('/', [CauHoiController::class, 'apiIndex']); |
| 85 | + Route::get('/{id}', [CauHoiController::class, 'apiShow']); |
| 86 | + Route::post('/', [CauHoiController::class, 'apiStore']); |
| 87 | + Route::put('/{id}', [CauHoiController::class, 'apiUpdate']); |
| 88 | + Route::delete('/{id}', [CauHoiController::class, 'apiDestroy']); |
| 89 | + }); |
| 90 | + |
| 91 | + // đáp án |
| 92 | + Route::prefix('cauhoi')->group(function () { |
| 93 | + Route::get('/{cauHoiId}/dapan', [DapAnController::class, 'apiIndex']); |
| 94 | + Route::get('/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiShow']); |
| 95 | + Route::post('/{cauHoiId}/dapan', [DapAnController::class, 'apiStore']); |
| 96 | + Route::put('/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiUpdate']); |
| 97 | + Route::delete('/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiDestroy']); |
| 98 | + }); |
| 99 | + |
| 100 | + // kỳ thi |
| 101 | + Route::prefix('kythi')->group(function () { |
| 102 | + Route::get('/', [KyThiController::class, 'apiIndex']); |
| 103 | + Route::get('/{id}', [KyThiController::class, 'apiShow']); |
| 104 | + Route::post('/', [KyThiController::class, 'apiStore']); |
| 105 | + Route::put('/{id}', [KyThiController::class, 'apiUpdate']); |
| 106 | + Route::delete('/{id}', [KyThiController::class, 'apiDestroy']); |
| 107 | + }); |
| 108 | + |
| 109 | + // ca thi |
| 110 | + Route::prefix('kythi')->group(function () { |
| 111 | + Route::get('/{kythi_id}/cathi', [CaThiController::class, 'apiIndex']); |
| 112 | + Route::post('/{kythi_id}/cathi', [CaThiController::class, 'apiStore']); |
| 113 | + Route::get('/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiShow']); |
| 114 | + Route::put('/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiUpdate']); |
| 115 | + Route::delete('/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiDestroy']); |
| 116 | + }); |
| 117 | + |
| 118 | + // đề thi |
| 119 | + Route::prefix('dethi')->group(function () { |
| 120 | + Route::get('/', [DeThiController::class, 'apiIndex']); |
| 121 | + Route::get('/{id}', [DeThiController::class, 'apiShow']); |
| 122 | + Route::post('/', [DeThiController::class, 'apiStore']); |
| 123 | + Route::put('/{id}', [DeThiController::class, 'apiUpdate']); |
| 124 | + Route::delete('/{id}', [DeThiController::class, 'apiDestroy']); |
| 125 | + }); |
| 126 | + |
| 127 | + // phòng thi |
| 128 | + Route::prefix('phongthi')->group(function () { |
| 129 | + Route::get('/', [PhongThiController::class, 'apiIndex']); |
| 130 | + Route::get('/{id}', [PhongThiController::class, 'apiShow']); |
| 131 | + Route::post('/', [PhongThiController::class, 'apiStore']); |
| 132 | + Route::put('/{id}', [PhongThiController::class, 'apiUpdate']); |
| 133 | + Route::delete('/{id}', [PhongThiController::class, 'apiDestroy']); |
| 134 | + }); |
119 | 135 |
|
120 |
| -// phòng thi |
121 |
| -Route::prefix('phongthi')->group(function () { |
122 |
| - Route::get('/', [PhongThiController::class, 'apiIndex']); |
123 |
| - Route::get('/{id}', [PhongThiController::class, 'apiShow']); |
124 |
| - Route::post('/', [PhongThiController::class, 'apiStore']); |
125 |
| - Route::put('/{id}', [PhongThiController::class, 'apiUpdate']); |
126 |
| - Route::delete('/{id}', [PhongThiController::class, 'apiDestroy']); |
127 | 136 | });
|
128 |
| - |
129 |
| -// kết quả |
130 |
| -Route::get('/sinhvien/{sinhvienId}/ketqua/{dethiId}', [KetQuaController::class, 'show'])->name('api.ketqua.show'); |
|
0 commit comments