user()->school->students; $studentIds = $students->pluck('id'); $existingRequests = DoublerRequest::whereIn('student_id', $studentIds)->get(); $doublers = []; foreach ($events as $event) { $event_doublers = $doublerService->doublersForEvent($event); $doublers[$event->id] = $event_doublers; } return view('doubler_request.index', compact('events', 'doublers', 'students', 'existingRequests')); } /** * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function makeRequest() { foreach (request()->get('doubler_requests') as $event_id => $requests) { if (! Event::find($event_id)->exists()) { return to_route('doubler_request.index')->with('error', 'Invalid event id specified'); } $thisEvent = Event::find($event_id); foreach ($requests as $student_id => $request) { if (! Student::find($student_id)->exists()) { return to_route('doubler_request.index')->with('error', 'Invalid student id specified'); } $thisStudent = Student::find($student_id); if (! $request) { $oldRequest = DoublerRequest::where('student_id', $student_id) ->where('event_id', $event_id) ->first(); if ($oldRequest) { Debugbar::info('hit'); AuditLogEntry::create([ 'user' => auth()->user()->email, 'ip_address' => request()->ip(), 'message' => 'Removed doubler request for '.$thisStudent->full_name().' in '.$thisEvent->name, 'affected' => ['students' => [$student_id]], ]); $oldRequest->delete(); } continue; } DoublerRequest::upsert([ 'event_id' => $event_id, 'student_id' => $student_id, 'request' => $request, ], uniqueBy: ['event_id', 'student_id'], update: ['request'] ); AuditLogEntry::create([ 'user' => auth()->user()->email, 'ip_address' => request()->ip(), 'message' => 'Made doubler request for '.$thisStudent->full_name().' in '.$thisEvent->name.'
Request: '.$request, 'affected' => ['students' => [$student_id]], ]); } } echo 'hi'; return to_route('doubler_request.index')->with('success', 'Recorded doubler requests'); } }