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 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); }