'staff_1', 'requestData' => [ 'ticketNumber' => [ 'validation' => DataValidator::validTicketNumber(), 'error' => ERRORS::INVALID_TICKET ] ] ]; } public function handler() { $ticketNumber = Controller::request('ticketNumber'); $this->user = Controller::getLoggedUser(); $this->ticket = Ticket::getByTicketNumber($ticketNumber); if($this->ticket->owner) { Response::respondError(ERRORS::TICKET_ALREADY_ASSIGNED); return; } if(!$this->ticketHasStaffDepartment()) { Response::respondError(ERRORS::INVALID_DEPARTMENT); } else { $this->user->sharedTicketList->add($this->ticket); $this->ticket->owner = $this->user; $this->ticket->store(); $this->user->store(); Response::respondSuccess(); } } public function ticketHasStaffDepartment() { $departmentMatch = false; foreach ($this->user->sharedDepartmentList as $department) { if($this->ticket->department->id === $department->id) { $departmentMatch = true; } } return $departmentMatch; } }