2016-02-20 07:37:06 -05:00
|
|
|
<?php namespace BookStack\Repos;
|
|
|
|
|
|
|
|
|
|
|
|
use BookStack\Book;
|
|
|
|
use BookStack\Chapter;
|
|
|
|
use BookStack\Page;
|
2016-02-28 14:03:04 -05:00
|
|
|
use BookStack\Services\RestrictionService;
|
2016-02-20 07:37:06 -05:00
|
|
|
|
|
|
|
class EntityRepo
|
|
|
|
{
|
|
|
|
|
|
|
|
public $book;
|
|
|
|
public $chapter;
|
|
|
|
public $page;
|
2016-02-28 14:03:04 -05:00
|
|
|
private $restrictionService;
|
2016-02-20 07:37:06 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* EntityService constructor.
|
2016-02-28 14:03:04 -05:00
|
|
|
* @param Book $book
|
|
|
|
* @param Chapter $chapter
|
|
|
|
* @param Page $page
|
|
|
|
* @param RestrictionService $restrictionService
|
2016-02-20 07:37:06 -05:00
|
|
|
*/
|
2016-02-28 14:03:04 -05:00
|
|
|
public function __construct(Book $book, Chapter $chapter, Page $page, RestrictionService $restrictionService)
|
2016-02-20 07:37:06 -05:00
|
|
|
{
|
|
|
|
$this->book = $book;
|
|
|
|
$this->chapter = $chapter;
|
|
|
|
$this->page = $page;
|
2016-02-28 14:03:04 -05:00
|
|
|
$this->restrictionService = $restrictionService;
|
2016-02-20 07:37:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the latest books added to the system.
|
|
|
|
* @param $count
|
|
|
|
* @param $page
|
|
|
|
*/
|
|
|
|
public function getRecentlyCreatedBooks($count = 20, $page = 0)
|
|
|
|
{
|
2016-02-28 14:03:04 -05:00
|
|
|
return $this->restrictionService->enforceBookRestrictions($this->book)
|
|
|
|
->orderBy('created_at', 'desc')->skip($page*$count)->take($count)->get();
|
2016-02-20 07:37:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the most recently updated books.
|
|
|
|
* @param $count
|
|
|
|
* @param int $page
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function getRecentlyUpdatedBooks($count = 20, $page = 0)
|
|
|
|
{
|
2016-02-28 14:03:04 -05:00
|
|
|
return $this->restrictionService->enforceBookRestrictions($this->book)
|
|
|
|
->orderBy('updated_at', 'desc')->skip($page*$count)->take($count)->get();
|
2016-02-20 07:37:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the latest pages added to the system.
|
|
|
|
* @param $count
|
|
|
|
* @param $page
|
|
|
|
*/
|
|
|
|
public function getRecentlyCreatedPages($count = 20, $page = 0)
|
|
|
|
{
|
2016-02-28 14:03:04 -05:00
|
|
|
return $this->restrictionService->enforcePageRestrictions($this->page)
|
|
|
|
->orderBy('created_at', 'desc')->skip($page*$count)->take($count)->get();
|
2016-02-20 07:37:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the most recently updated pages.
|
|
|
|
* @param $count
|
|
|
|
* @param int $page
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function getRecentlyUpdatedPages($count = 20, $page = 0)
|
|
|
|
{
|
2016-02-28 14:03:04 -05:00
|
|
|
return $this->restrictionService->enforcePageRestrictions($this->page)
|
|
|
|
->orderBy('updated_at', 'desc')->skip($page*$count)->take($count)->get();
|
2016-02-20 07:37:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|