Beispiel #1
0
 /**
  * Adds a new book
  *
  * @param $orgId
  * @param $data
  * @return Book
  * @throws OrganizationNotFoundException
  * @throws UnprocessableEntityException
  */
 public function add($orgId, $data)
 {
     $organization = $this->orgRepo->organizationOfId($orgId);
     if (!$organization) {
         throw new OrganizationNotFoundException($orgId);
     }
     $name = $this->nameIsRequired($data);
     $isbn = $this->isbnIsRequired($data);
     $book = Book::register($name, $isbn);
     $book->setOrganization($organization);
     $this->setDescription($data, $book);
     $this->addImage($data, $book);
     $this->setAgeRange($data, $book);
     $this->syncAuthors($data, $book);
     $this->syncPublishers($data, $book);
     $this->syncTags($data, $book);
     $this->bookRepo->add($book);
     return $book;
 }