X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/3acea12f1c0013be4f1e3994cae2ea662e43bb4e..refs/pull/1688/head:/app/Entities/Bookshelf.php diff --git a/app/Entities/Bookshelf.php b/app/Entities/Bookshelf.php index db6685688..7ad2415ed 100644 --- a/app/Entities/Bookshelf.php +++ b/app/Entities/Bookshelf.php @@ -100,8 +100,22 @@ class Bookshelf extends Entity * @param Book $book * @return bool */ - public function contains(Book $book) + public function contains(Book $book): bool { return $this->books()->where('id', '=', $book->id)->count() > 0; } + + /** + * Add a book to the end of this shelf. + * @param Book $book + */ + public function appendBook(Book $book) + { + if ($this->contains($book)) { + return; + } + + $maxOrder = $this->books()->max('order'); + $this->books()->attach($book->id, ['order' => $maxOrder + 1]); + } }