'user', 'requestData' => [ 'title' => [ 'validation' => DataValidator::length(10, 200), 'error' => ERRORS::INVALID_TITLE ], 'content' => [ 'validation' => DataValidator::length(10, 5000), 'error' => ERRORS::INVALID_CONTENT ], 'departmentId' => [ 'validation' => DataValidator::dataStoreId('department'), 'error' => ERRORS::INVALID_DEPARTMENT ], 'language' => [ 'validation' => DataValidator::in(Language::getSupportedLanguages()), 'error' => ERRORS::INVALID_LANGUAGE ] ] ]; } public function handler() { $this->title = Controller::request('title'); $this->content = Controller::request('content'); $this->departmentId = Controller::request('departmentId'); $this->language = Controller::request('language'); $this->storeTicket(); Log::createLog('CREATE_TICKET', $this->ticketNumber); Response::respondSuccess([ 'ticketNumber' => $this->ticketNumber ]); } private function storeTicket() { $department = Department::getDataStore($this->departmentId); $author = Controller::getLoggedUser(); $ticket = new Ticket(); $ticket->setProperties(array( 'title' => $this->title, 'content' => $this->content, 'language' => $this->language, 'author' => $author, 'department' => $department, 'file' => $this->uploadFile(), 'date' => Date::getCurrentDate(), 'unread' => false, 'unreadStaff' => true, 'closed' => false, )); $author->sharedTicketList->add($ticket); $author->tickets++; $author->store(); $ticket->store(); $this->ticketNumber = $ticket->ticketNumber; } private function uploadFile() { if(!isset($_FILES['file'])) return ''; $maxSize = Setting::getSetting('max-size')->getValue(); $fileGap = Setting::getSetting('file-gap')->getValue(); $fileFirst = Setting::getSetting('file-first-number')->getValue(); $fileQuantity = Setting::getSetting('file-quantity'); $fileUploader = FileUploader::getInstance(); $fileUploader->setMaxSize($maxSize); $fileUploader->setGeneratorValues($fileGap, $fileFirst, $fileQuantity->getValue()); if($fileUploader->upload($_FILES['file'])) { $fileQuantity->value++; $fileQuantity->store(); return $fileUploader->getFileName(); } else { throw new Exception(ERRORS::INVALID_FILE); } } }