/** * @param array $data * @param IMessageSenderService $new_purchase_order_message_sender * @throws EntityValidationException * @return mixed */ public function registerPurchaseOrder(array $data, IMessageSenderService $new_purchase_order_message_sender) { $repository = $this->repository; $factory = $this->factory; $summit_packages_repository = $this->summit_packages_repository; $this->tx_manager->transaction(function () use($data, $repository, $summit_packages_repository, $factory, $new_purchase_order_message_sender) { $rules = array('package_id' => 'required|integer', 'summit_page_id' => 'required|integer', 'first_name' => 'required|text|max:250', 'last_name' => 'required|text|max:250', 'email' => 'required|text|max:250|email', 'organization' => 'required|text', 'organization_id' => 'sometimes|integer'); $messages = array('first_name.required' => ':attribute is required', 'first_name.text' => ':attribute should be valid text.', 'first_name.max' => ':attribute should have less than 250 chars.', 'last_name.required' => ':attribute is required', 'last_name.text' => ':attribute should be valid text.', 'last_name.max' => ':attribute should have less than 250 chars.', 'email.required' => ':attribute is required', 'email.text' => ':attribute should be valid text.', 'email.max' => ':attribute should have less than 250 chars.', 'email.email' => ':attribute should be valid email.', 'organization.required' => ':attribute is required', 'organization.text' => ':attribute should be valid text.', 'package_id.required' => ':attribute is required', 'package_id.integer' => ':attribute should be valid integer.', 'summit_page_id.required' => ':attribute is required', 'summit_page_id.integer' => ':attribute should be valid integer.', 'organization_id.integer' => ':attribute should be valid integer.'); $validator = ValidatorService::make($data, $rules, $messages); if ($validator->fails()) { throw new EntityValidationException($messages); } $package = $summit_packages_repository->getById($data['package_id']); if (is_null($package)) { throw new EntityValidationException(EntityValidationException::buildMessage(sprintf('package id %s does not exists!', $data['package_id']))); } if ($package->SoldOut()) { throw new EntityValidationException(EntityValidationException::buildMessage(sprintf('package id %s sold out!', $data['package_id']))); } if (!$package->isParentPage($data['summit_page_id'])) { throw new EntityValidationException(EntityValidationException::buildMessage(sprintf('package id %s does not belong to page id %s!', $data['package_id'], $data['summit_page_id']))); } $purchase_order = $factory->build($data); $repository->add($purchase_order); $new_purchase_order_message_sender->send($purchase_order); }); }
public function addRelease() { $json = $this->getJsonRequest(); if (!$json) { return $this->serverError(); } $rules = array('name' => 'required|text', 'release_number' => 'required|text', 'release_date' => 'required|date', 'release_notes_url' => 'required|url'); $messages = array('name.required' => ':attribute is required', 'name.text' => ':attribute should be valid text.', 'release_number.required' => ':attribute is required', 'release_number.text' => ':attribute should be valid text.', 'release_date.required' => ':attribute is required', 'release_date.date' => ':attribute should be valid date (y-m-d).', 'release_notes_url.required' => ':attribute is required', 'release_notes_url.url' => ':attribute should be valid url.'); $validator = ValidatorService::make($json, $rules, $messages); if ($validator->fails()) { return $this->validationError($validator->messages()); } $date = new DateTime($json['release_date']); $id = $this->manager->registerRelease($this->factory->buildOpenStackRelease($json['name'], $json['release_number'], $date, $json['release_notes_url'])); return $this->created($id); }
/** * @param array $data * @return IValidator */ public function buildValidatorForNewsRejection(array $data) { $rules = array('custom_reject_message' => 'sometimes|text'); $messages = array('custom_reject_message.text' => ':attribute should be valid text.'); return ValidatorService::make($data, $rules, $messages); }
/** * @param array $data * @return IValidator */ public function buildValidatorForJob(array $data) { $rules = array('title' => 'required|text|max:100', 'url' => 'required', 'description' => 'required|htmltext', 'instructions' => 'required|htmltext', 'company' => 'required|text', 'job_type' => 'required|text'); $messages = array('title.required' => ':attribute is required', 'title.text' => ':attribute should be valid text.', 'title.max' => ':attribute should have less than 100 chars.', 'url.required' => ':attribute is required', 'description.required' => ':attribute is required', 'description.text' => ':attribute should be valid text.', 'instructions.required' => ':attribute is required', 'instructions.htmltext' => ':attribute should be valid text.', 'company.required' => ':attribute is required', 'company.text' => ':attribute should be valid text.', 'job_type.required' => ':attribute is required', 'job_type.text' => ':attribute should be valid text.'); return ValidatorService::make($data, $rules, $messages); }
/** * Handles the form submission that creates a new speaker. * Checks for existence, and uses existing if found * @param $data array * @param $form Form * @return SSViewer */ public function doAddSpeaker($data, $form) { try { $me = Convert::raw2sql($data['SpeakerType']) == 'Me'; $email = $me ? Member::currentUser()->Email : Convert::raw2sql($data['EmailAddress']); $rules = array('SpeakerType' => 'required', 'EmailAddress' => 'sometimes|required_if:SpeakerType,Else'); $messages = array('SpeakerType.required' => ':attribute is required.', 'EmailAddress.sometimes' => 'Please specify an email address.', 'EmailAddress.required_if' => 'Please specify an email address.'); $member_id = intval($data['MemberId']); $speaker_id = intval($data['SpeakerId']); $provided_email = !filter_var($email, FILTER_VALIDATE_EMAIL) === false; $validator = ValidatorService::make($data, $rules, $messages); $member_repository = $this->getParent()->getMemberRepository(); $speaker_repository = $this->getParent()->getSpeakerRepository(); if ($validator->fails()) { throw new EntityValidationException($validator->messages()); } if ($member_id === 0 && $speaker_id === 0 && !$provided_email) { throw new EntityValidationException('Please specify an email address.'); } $member = $me ? Member::currentUser() : $member_repository->getById($member_id); if (is_null($member) && $provided_email) { $member = $member_repository->findByEmail($email); } $speaker = $speaker_repository->getById($speaker_id); $speaker = $this->getParent()->getPresentationManager()->addSpeakerByEmailTo($this->presentation, $email, $member, $speaker); return $this->parent->redirect(Controller::join_links($this->Link(), 'speaker', $speaker->getIdentifier())); } catch (EntityValidationException $ex1) { SS_Log::log($ex1->getMessage(), SS_Log::WARN); $form->sessionMessage($ex1->getMessage(), 'bad'); return $this->redirectBack(); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); $form->sessionMessage('There was an error with your request.', 'bad'); return $this->redirectBack(); } }
public function addVersion() { try { $json = $this->getJsonRequest(); if (!$json) { return $this->serverError(); } $component_id = (int) $this->request->param('COMPONENT_ID'); $rules = array('version' => 'required|text', 'status' => 'required|versionstatus'); $messages = array('version.required' => ':attribute is required', 'version.text' => ':attribute should be valid text.', 'status.required' => ':attribute is required', 'status.versionstatus' => ':attribute should be valid api version status.'); $validator = ValidatorService::make($json, $rules, $messages); if ($validator->fails()) { return $this->validationError($validator->messages()); } $component = $this->factory->buildOpenStackComponentById($component_id); $version = $this->factory->buildOpenStackApiVersion($json['version'], $json['status'], $component); return $this->created($this->manager->registerVersion($version)); } catch (EntityAlreadyExistsException $ex1) { return $this->addingDuplicate($ex1->getMessage()); } catch (NotFoundEntityException $ex2) { return $this->notFound($ex2->getMessage()); } catch (Exception $ex) { return $this->serverError(); } }
public function buildValidatorForCompanyService(array $data) { $rules = array('name' => 'required|text', 'overview' => 'required|text|max:250', 'active' => 'required|boolean', 'company_id' => 'required|integer', 'call_2_action_uri' => 'required|url', 'compatible_compute' => 'required|boolean', 'compatible_storage' => 'required|boolean', 'compatible_federated_identity' => 'required|boolean'); $messages = array('name.required' => ':attribute is required', 'name.text' => ':attribute should be valid text.', 'overview.required' => ':attribute is required', 'overview.text' => ':attribute should be valid text.', 'overview.max' => ':attribute should have less than 250 chars.', 'call_2_action_uri.required' => ':attribute is required', 'call_2_action_uri.url' => ':attribute should be valid url.', 'active.required' => ':attribute is required', 'active.boolean' => ':attribute should be valid boolean value', 'company_id.required' => ':attribute is required', 'company_id.boolean' => ':attribute should be valid integer value'); return ValidatorService::make($data, $rules, $messages); }
/** * @param array $data * @return ValidatorService */ public function buildValidatorForTeam(array $data) { $rules = array('name' => 'required|text', 'company_id' => 'required|integer'); $messages = array('name.required' => ':attribute is required', 'name.text' => ':attribute should be valid text.', 'company_id.required' => ':attribute is required', 'company_id.integer' => ':attribute should be valid integer.'); return ValidatorService::make($data, $rules, $messages); }
/** * @param array $data * @return IValidator */ public function buildValidatorForEventRejection(array $data) { $rules = array('send_rejection_email' => 'required|boolean', 'custom_reject_message' => 'sometimes|text'); $messages = array('send_rejection_email.required' => ':attribute is required', 'send_rejection_email.boolean' => ':attribute should be valid boolean.', 'custom_reject_message.text' => ':attribute should be valid text.'); return ValidatorService::make($data, $rules, $messages); }
/** * @param array $data * @return IValidator */ public function buildValidatorForOffice(array $data) { $rules = array('address_1' => 'sometimes|text', 'address_2' => 'sometimes|text', 'zip_code ' => 'sometimes|text', 'state' => 'sometimes|text', 'city' => 'required|text', 'country' => 'required|text', 'lat' => 'required|float', 'lng' => 'required|float'); $messages = array('name.required' => '(office) - :attribute is required', 'name.text' => '(office) - :attribute should be valid text.', 'country.required' => '(office) - :attribute is required', 'country.text' => '(office) - :attribute should be valid text.', 'lat.required' => '(office) - :attribute is required.', 'lat.float' => '(office) - :attribute should be valid float number.', 'lng.required' => '(office) - :attribute is required.', 'lng.float' => '(office) - :attribute should be valid float number.', 'address_1.text' => '(office) - :attribute should be valid text.', 'address_2.text' => '(office) - :attribute should be valid text.', 'zip_code.text' => '(office) - :attribute should be valid text.', 'state.text' => '(office) - :attribute should be valid text.'); return ValidatorService::make($data, $rules, $messages); }