api = $api; } public function index() { $response = $this->api->get('/employee/disciplines'); $directions = $this->api->get('/employee/directions')->json(); if ($response->successful()) { $disciplines = $response->json(); $directionsList = collect($directions)->pluck('name', 'id')->toArray(); return view('disciplines.index', compact('disciplines', 'directionsList')); } abort($response->status()); } public function create() { $directions = $this->api->get('/employee/directions')->json(); return view('disciplines.form', ['directions' => $directions]); } public function store(Request $request) { $response = $this->api->post('/employee/disciplines', $request->all()); if ($response->successful()) { return redirect()->route('disciplines.index') ->with('success', 'Дисциплина успешно создана'); } return back()->withErrors($response->json()['errors'] ?? []); } public function edit($id) { $disciplineResponse = $this->api->get("/employee/disciplines/{$id}"); $directionsResponse = $this->api->get('/employee/directions'); if ($disciplineResponse->successful() && $directionsResponse->successful()) { $discipline = $disciplineResponse->json(); $directions = $directionsResponse->json(); return view('disciplines.form', [ 'discipline' => $discipline, 'directions' => $directions, 'isEdit' => true ]); } abort($disciplineResponse->status() ?? $directionsResponse->status()); } public function update(Request $request, $id) { $response = $this->api->patch("/employee/disciplines/{$id}", $request->all()); if ($response->successful()) { return redirect()->route('disciplines.index') ->with('success', 'Данные дисциплины обновлены'); } return back()->withErrors($response->json()['errors'] ?? []); } public function destroy($id) { $response = $this->api->delete("/employee/disciplines/{$id}"); if ($response->successful()) { return redirect()->route('disciplines.index') ->with('success', 'Дисциплина удалена'); } return back()->withErrors($response->json()['error'] ?? 'Ошибка при удалении'); } }