]> BookStack Code Mirror - bookstack/blobdiff - app/Entities/Models/Bookshelf.php
Fixed failing test after drawio default url change
[bookstack] / app / Entities / Models / Bookshelf.php
index d2b8879198fcee4f3218e280c3b67419b49e2508..b9ebab92ef88da243a9ef069f35cce0e5ddd0e14 100644 (file)
@@ -1,15 +1,19 @@
-<?php namespace BookStack\Entities\Models;
+<?php
+
+namespace BookStack\Entities\Models;
 
 use BookStack\Uploads\Image;
-use Illuminate\Database\Eloquent\Collection;
+use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
 use Illuminate\Database\Eloquent\Relations\BelongsToMany;
 
 class Bookshelf extends Entity implements HasCoverImage
 {
+    use HasFactory;
+
     protected $table = 'bookshelves';
 
-    public $searchFactor = 3;
+    public $searchFactor = 1.2;
 
     protected $fillable = ['name', 'description', 'image_id'];
 
@@ -18,6 +22,7 @@ class Bookshelf extends Entity implements HasCoverImage
     /**
      * Get the books in this shelf.
      * Should not be used directly since does not take into account permissions.
+     *
      * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
      */
     public function books()
@@ -32,21 +37,7 @@ class Bookshelf extends Entity implements HasCoverImage
      */
     public function visibleBooks(): BelongsToMany
     {
-        return $this->books()->visible();
-    }
-
-    /**
-     * Get the books in this shelf that are visible to the current user with sorted by custom parameter
-     * @param string $sort - Chosen Column to be sorted
-     * @param string $order - Order of the sort
-     * @return Collection
-     */
-    public function visibleBooksByCustomSorting(string $sort = 'name', string $order = 'asc'): Collection
-    {
-        return $this->belongsToMany(Book::class, 'bookshelves_books', 'bookshelf_id', 'book_id')
-            ->orderBy($sort, $order)
-            ->visible()
-            ->get();
+        return $this->books()->scopes('visible');
     }
 
     /**
@@ -59,8 +50,10 @@ class Bookshelf extends Entity implements HasCoverImage
 
     /**
      * Returns BookShelf cover image, if cover does not exists return default cover image.
-     * @param int $width - Width of the image
+     *
+     * @param int $width  - Width of the image
      * @param int $height - Height of the image
+     *
      * @return string
      */
     public function getBookCover($width = 440, $height = 250)
@@ -76,11 +69,12 @@ class Bookshelf extends Entity implements HasCoverImage
         } catch (\Exception $err) {
             $cover = $default;
         }
+
         return $cover;
     }
 
     /**
-     * Get the cover image of the shelf
+     * Get the cover image of the shelf.
      */
     public function cover(): BelongsTo
     {
@@ -97,7 +91,9 @@ class Bookshelf extends Entity implements HasCoverImage
 
     /**
      * Check if this shelf contains the given book.
+     *
      * @param Book $book
+     *
      * @return bool
      */
     public function contains(Book $book): bool
@@ -107,6 +103,7 @@ class Bookshelf extends Entity implements HasCoverImage
 
     /**
      * Add a book to the end of this shelf.
+     *
      * @param Book $book
      */
     public function appendBook(Book $book)