diff --git a/backend/app/Http/Controllers/CompanyController.php b/backend/app/Http/Controllers/CompanyController.php index ac3ce8e..a2ed187 100644 --- a/backend/app/Http/Controllers/CompanyController.php +++ b/backend/app/Http/Controllers/CompanyController.php @@ -169,6 +169,7 @@ class CompanyController extends Controller } $company = Company::find($id); + $company_contact = User::find($company->contact); if (!$company) { return response()->json([ @@ -176,46 +177,26 @@ class CompanyController extends Controller ], 400); } - try { - DB::beginTransaction(); + DB::beginTransaction(); - // 1. Získaj všetky internship IDs firmy - $internshipIds = Internship::where('company_id', $company->id) - ->pluck('id') - ->toArray(); + $internships = Internship::whereCompanyId($company->id); - // 2. Vymaž všetky internship statuses - if (!empty($internshipIds)) { - InternshipStatus::whereIn('internship_id', $internshipIds)->delete(); - } + // mazanie statusov + $internships->each(function ($internship) { + InternshipStatus::whereInternshipId($internship->id)->delete(); + }); - // 3. Vymaž všetky internships firmy - Internship::where('company_id', $company->id)->delete(); + // mazanie praxov + $internships->delete(); - // 4. Získaj contact usera - $contactUser = User::find($company->contact); + // mazanie firmy + Company::whereContact($company_contact->id); - // 5. Vymaž company - $company->delete(); + // mazanie účtu firmy + $company_contact->delete(); - // 6. Vymaž contact usera (EMPLOYER) - if ($contactUser && $contactUser->role === 'EMPLOYER') { - $contactUser->delete(); - } + DB::commit(); - DB::commit(); - - return response()->json([ - 'message' => 'Company successfully deleted.' - ], 200); - - } catch (\Exception $e) { - DB::rollBack(); - - return response()->json([ - 'message' => 'Error deleting company.', - 'error' => $e->getMessage() - ], 500); - } + return response()->noContent(); } } diff --git a/backend/app/Http/Controllers/StudentDataController.php b/backend/app/Http/Controllers/StudentDataController.php index 6506fa3..913345c 100644 --- a/backend/app/Http/Controllers/StudentDataController.php +++ b/backend/app/Http/Controllers/StudentDataController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\Internship; use App\Models\StudentData; use App\Models\User; use App\Models\InternshipStatus; @@ -197,41 +198,27 @@ class StudentDataController extends Controller ], 400); } - try { - DB::beginTransaction(); + DB::beginTransaction(); - // 1. Získaj internship IDs - $internshipIds = $student->internships()->pluck('id')->toArray(); + // mazanie praxov + $internships = Internship::whereUserId($student->id); - // 2. Vymaž internship statuses - if (!empty($internshipIds)) { - InternshipStatus::whereIn('internship_id', $internshipIds)->delete(); - } + // mazanie statusov + $internships->each(function ($internship) { + InternshipStatus::whereInternshipId($internship->id)->delete(); + }); - // 3. Vymaž internships - $student->internships()->delete(); + // mazanie praxov + $internships->delete(); - // 4. Vymaž student_data - if ($student->studentData) { - $student->studentData()->delete(); - } + // mazanie firmy + StudentData::whereUserId($student->id); - // 5. Vymaž usera - $student->delete(); + // mazanie účtu firmy + $student->delete(); - DB::commit(); + DB::commit(); - return response()->json([ - 'message' => 'Student successfully deleted.' - ], 200); - - } catch (\Exception $e) { - DB::rollBack(); - - return response()->json([ - 'message' => 'Error deleting student.', - 'error' => $e->getMessage() - ], 500); - } + return response()->noContent(); } } diff --git a/frontend/app/pages/dashboard/admin/companies/index.vue b/frontend/app/pages/dashboard/admin/companies/index.vue index 43622e1..13c3dc8 100644 --- a/frontend/app/pages/dashboard/admin/companies/index.vue +++ b/frontend/app/pages/dashboard/admin/companies/index.vue @@ -1,5 +1,6 @@