diff --git a/app/Api/ApiEntityListFormatter.php b/app/Api/ApiEntityListFormatter.php index c170ecf0c..436d66d59 100644 --- a/app/Api/ApiEntityListFormatter.php +++ b/app/Api/ApiEntityListFormatter.php @@ -10,7 +10,7 @@ class ApiEntityListFormatter * The list to be formatted. * @var Entity[] */ - protected $list = []; + protected array $list = []; /** * The fields to show in the formatted data. @@ -19,9 +19,9 @@ class ApiEntityListFormatter * will be used for the resultant value. A null return value will omit the property. * @var array */ - protected $fields = [ - 'id', 'name', 'slug', 'book_id', 'chapter_id', - 'draft', 'template', 'created_at', 'updated_at', + protected array $fields = [ + 'id', 'name', 'slug', 'book_id', 'chapter_id', 'draft', + 'template', 'priority', 'created_at', 'updated_at', ]; public function __construct(array $list) diff --git a/app/Entities/Controllers/ChapterApiController.php b/app/Entities/Controllers/ChapterApiController.php index 403c58de3..7f01e445a 100644 --- a/app/Entities/Controllers/ChapterApiController.php +++ b/app/Entities/Controllers/ChapterApiController.php @@ -19,12 +19,14 @@ class ChapterApiController extends ApiController 'name' => ['required', 'string', 'max:255'], 'description' => ['string', 'max:1000'], 'tags' => ['array'], + 'priority' => ['integer'], ], 'update' => [ 'book_id' => ['integer'], 'name' => ['string', 'min:1', 'max:255'], 'description' => ['string', 'max:1000'], 'tags' => ['array'], + 'priority' => ['integer'], ], ]; diff --git a/app/Entities/Controllers/PageApiController.php b/app/Entities/Controllers/PageApiController.php index 0e8893450..d2947f1bb 100644 --- a/app/Entities/Controllers/PageApiController.php +++ b/app/Entities/Controllers/PageApiController.php @@ -21,6 +21,7 @@ class PageApiController extends ApiController 'html' => ['required_without:markdown', 'string'], 'markdown' => ['required_without:html', 'string'], 'tags' => ['array'], + 'priority' => ['integer'], ], 'update' => [ 'book_id' => ['integer'], @@ -29,6 +30,7 @@ class PageApiController extends ApiController 'html' => ['string'], 'markdown' => ['string'], 'tags' => ['array'], + 'priority' => ['integer'], ], ]; diff --git a/app/Entities/Repos/ChapterRepo.php b/app/Entities/Repos/ChapterRepo.php index 588854c7e..977193d85 100644 --- a/app/Entities/Repos/ChapterRepo.php +++ b/app/Entities/Repos/ChapterRepo.php @@ -16,14 +16,9 @@ use Exception; class ChapterRepo { - protected $baseRepo; - - /** - * ChapterRepo constructor. - */ - public function __construct(BaseRepo $baseRepo) - { - $this->baseRepo = $baseRepo; + public function __construct( + protected BaseRepo $baseRepo + ) { } /** diff --git a/app/Entities/Repos/PageRepo.php b/app/Entities/Repos/PageRepo.php index 521519dc0..61a1db63e 100644 --- a/app/Entities/Repos/PageRepo.php +++ b/app/Entities/Repos/PageRepo.php @@ -23,24 +23,12 @@ use Illuminate\Pagination\LengthAwarePaginator; class PageRepo { - protected BaseRepo $baseRepo; - protected RevisionRepo $revisionRepo; - protected ReferenceStore $referenceStore; - protected ReferenceUpdater $referenceUpdater; - - /** - * PageRepo constructor. - */ public function __construct( - BaseRepo $baseRepo, - RevisionRepo $revisionRepo, - ReferenceStore $referenceStore, - ReferenceUpdater $referenceUpdater + protected BaseRepo $baseRepo, + protected RevisionRepo $revisionRepo, + protected ReferenceStore $referenceStore, + protected ReferenceUpdater $referenceUpdater ) { - $this->baseRepo = $baseRepo; - $this->revisionRepo = $revisionRepo; - $this->referenceStore = $referenceStore; - $this->referenceUpdater = $referenceUpdater; } /** @@ -159,13 +147,11 @@ class PageRepo */ public function publishDraft(Page $draft, array $input): Page { - $this->updateTemplateStatusAndContentFromInput($draft, $input); - $this->baseRepo->update($draft, $input); - $draft->draft = false; $draft->revision_count = 1; $draft->priority = $this->getNewPriority($draft); - $draft->save(); + $this->updateTemplateStatusAndContentFromInput($draft, $input); + $this->baseRepo->update($draft, $input); $this->revisionRepo->storeNewForPage($draft, trans('entities.pages_initial_revision')); $this->referenceStore->updateForPage($draft); diff --git a/dev/api/requests/chapters-create.json b/dev/api/requests/chapters-create.json index ca06fc298..a7a0e072c 100644 --- a/dev/api/requests/chapters-create.json +++ b/dev/api/requests/chapters-create.json @@ -2,8 +2,9 @@ "book_id": 1, "name": "My fantastic new chapter", "description": "This is a great new chapter that I've created via the API", + "priority": 15, "tags": [ {"name": "Category", "value": "Top Content"}, {"name": "Rating", "value": "Highest"} ] -} \ No newline at end of file +} diff --git a/dev/api/requests/chapters-update.json b/dev/api/requests/chapters-update.json index 6bd3a3e5c..18c40301b 100644 --- a/dev/api/requests/chapters-update.json +++ b/dev/api/requests/chapters-update.json @@ -2,8 +2,9 @@ "book_id": 1, "name": "My fantastic updated chapter", "description": "This is an updated chapter that I've altered via the API", + "priority": 16, "tags": [ {"name": "Category", "value": "Kinda Good Content"}, {"name": "Rating", "value": "Medium"} ] -} \ No newline at end of file +} diff --git a/dev/api/requests/pages-create.json b/dev/api/requests/pages-create.json index 1f53b42d4..bb32943a2 100644 --- a/dev/api/requests/pages-create.json +++ b/dev/api/requests/pages-create.json @@ -2,8 +2,9 @@ "book_id": 1, "name": "My API Page", "html": "

my new API page

", + "priority": 15, "tags": [ {"name": "Category", "value": "Not Bad Content"}, {"name": "Rating", "value": "Average"} ] -} \ No newline at end of file +} diff --git a/dev/api/requests/pages-update.json b/dev/api/requests/pages-update.json index b9bfeb630..e3ca9004e 100644 --- a/dev/api/requests/pages-update.json +++ b/dev/api/requests/pages-update.json @@ -2,8 +2,9 @@ "chapter_id": 1, "name": "My updated API Page", "html": "

my new API page - Updated

", + "priority": 16, "tags": [ {"name": "Category", "value": "API Examples"}, {"name": "Rating", "value": "Alright"} ] -} \ No newline at end of file +} diff --git a/dev/api/responses/chapters-create.json b/dev/api/responses/chapters-create.json index 4dbc764b1..cf47b123d 100644 --- a/dev/api/responses/chapters-create.json +++ b/dev/api/responses/chapters-create.json @@ -4,7 +4,7 @@ "slug": "my-fantastic-new-chapter", "name": "My fantastic new chapter", "description": "This is a great new chapter that I've created via the API", - "priority": 6, + "priority": 15, "created_by": 1, "updated_by": 1, "owned_by": 1, diff --git a/dev/api/responses/chapters-update.json b/dev/api/responses/chapters-update.json index cc454d740..a4940af2d 100644 --- a/dev/api/responses/chapters-update.json +++ b/dev/api/responses/chapters-update.json @@ -4,7 +4,7 @@ "slug": "my-fantastic-updated-chapter", "name": "My fantastic updated chapter", "description": "This is an updated chapter that I've altered via the API", - "priority": 7, + "priority": 16, "created_at": "2020-05-22T23:03:35.000000Z", "updated_at": "2020-05-22T23:07:20.000000Z", "created_by": 1, diff --git a/dev/api/responses/pages-create.json b/dev/api/responses/pages-create.json index 385d5384e..11f5ab8c8 100644 --- a/dev/api/responses/pages-create.json +++ b/dev/api/responses/pages-create.json @@ -6,7 +6,7 @@ "slug": "my-api-page", "html": "

my new API page

", "raw_html": "

my new API page

", - "priority": 14, + "priority": 15, "created_at": "2020-11-28T15:01:39.000000Z", "updated_at": "2020-11-28T15:01:39.000000Z", "created_by": { diff --git a/tests/Api/ChaptersApiTest.php b/tests/Api/ChaptersApiTest.php index 713d8bba4..0629f3aed 100644 --- a/tests/Api/ChaptersApiTest.php +++ b/tests/Api/ChaptersApiTest.php @@ -45,6 +45,7 @@ class ChaptersApiTest extends TestCase 'value' => 'tagvalue', ], ], + 'priority' => 15, ]; $resp = $this->postJson($this->baseEndpoint, $details); @@ -137,6 +138,7 @@ class ChaptersApiTest extends TestCase 'value' => 'freshtagval', ], ], + 'priority' => 15, ]; $resp = $this->putJson($this->baseEndpoint . "/{$chapter->id}", $details); diff --git a/tests/Api/PagesApiTest.php b/tests/Api/PagesApiTest.php index 4a81f738b..0d084472d 100644 --- a/tests/Api/PagesApiTest.php +++ b/tests/Api/PagesApiTest.php @@ -45,6 +45,7 @@ class PagesApiTest extends TestCase 'value' => 'tagvalue', ], ], + 'priority' => 15, ]; $resp = $this->postJson($this->baseEndpoint, $details); @@ -207,6 +208,7 @@ class PagesApiTest extends TestCase 'value' => 'freshtagval', ], ], + 'priority' => 15, ]; $resp = $this->putJson($this->baseEndpoint . "/{$page->id}", $details);