Merge branch 'feature/80-Odstránenie-účtu-používateľa-garantom-' into develop

This commit is contained in:
dkecskes
2025-11-04 10:03:35 +01:00
10 changed files with 498 additions and 8 deletions

View File

@@ -2,9 +2,12 @@
namespace App\Http\Controllers;
use App\Models\Internship;
use App\Models\StudentData;
use App\Models\User;
use App\Models\InternshipStatus;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class StudentDataController extends Controller
{
@@ -171,4 +174,54 @@ class StudentDataController extends Controller
{
//
}
/**
* Delete a student and all related data.
*/
public function delete(int $id)
{
$user = auth()->user();
// Admin kontrola
if ($user->role !== 'ADMIN') {
abort(403, 'Unauthorized');
}
$student = User::find($id);
if (!$student) {
return response()->json([
'message' => 'No such student exists.'
], 400);
}
if ($student->role !== 'STUDENT') {
return response()->json([
'message' => 'User is not a student.'
], 400);
}
DB::beginTransaction();
// mazanie praxov
$internships = Internship::whereUserId($student->id);
// mazanie statusov
$internships->each(function ($internship) {
InternshipStatus::whereInternshipId($internship->id)->delete();
});
// mazanie praxov
$internships->delete();
// mazanie firmy
StudentData::whereUserId($student->id);
// mazanie účtu firmy
$student->delete();
DB::commit();
return response()->noContent();
}
}