From adf1806feaa541f7ff627ba83278ea7dd2fd7a04 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Tue, 16 Jan 2024 12:06:13 +0000 Subject: [PATCH] Chapters API: Added missing book_slug field Was removed during previous changes, but reflected in response examples. This adds into all standard single chapter responses. For #4765 --- app/Entities/Controllers/ChapterApiController.php | 5 +++-- dev/api/responses/chapters-create.json | 1 + dev/api/responses/chapters-update.json | 1 + tests/Api/ChaptersApiTest.php | 13 ++++++++----- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/Entities/Controllers/ChapterApiController.php b/app/Entities/Controllers/ChapterApiController.php index c21323262..85c81c248 100644 --- a/app/Entities/Controllers/ChapterApiController.php +++ b/app/Entities/Controllers/ChapterApiController.php @@ -134,8 +134,9 @@ class ChapterApiController extends ApiController $chapter->unsetRelations()->refresh(); $chapter->load(['tags']); - $chapter->makeVisible('description_html') - ->setAttribute('description_html', $chapter->descriptionHtml()); + $chapter->makeVisible('description_html'); + $chapter->setAttribute('description_html', $chapter->descriptionHtml()); + $chapter->setAttribute('book_slug', $chapter->book()->first()->slug); return $chapter; } diff --git a/dev/api/responses/chapters-create.json b/dev/api/responses/chapters-create.json index 183186b0b..2d4044405 100644 --- a/dev/api/responses/chapters-create.json +++ b/dev/api/responses/chapters-create.json @@ -11,6 +11,7 @@ "updated_by": 1, "owned_by": 1, "description_html": "

This is a great new chapter<\/strong> that I've created via the API<\/p>", + "book_slug": "example-book", "tags": [ { "name": "Category", diff --git a/dev/api/responses/chapters-update.json b/dev/api/responses/chapters-update.json index 5ac3c64c1..3dad6aa0c 100644 --- a/dev/api/responses/chapters-update.json +++ b/dev/api/responses/chapters-update.json @@ -11,6 +11,7 @@ "updated_by": 1, "owned_by": 1, "description_html": "

This is an updated chapter<\/strong> that I've altered via the API<\/p>", + "book_slug": "example-book", "tags": [ { "name": "Category", diff --git a/tests/Api/ChaptersApiTest.php b/tests/Api/ChaptersApiTest.php index 81a918877..002046c3a 100644 --- a/tests/Api/ChaptersApiTest.php +++ b/tests/Api/ChaptersApiTest.php @@ -22,11 +22,12 @@ class ChaptersApiTest extends TestCase $resp = $this->getJson($this->baseEndpoint . '?count=1&sort=+id'); $resp->assertJson(['data' => [ [ - 'id' => $firstChapter->id, - 'name' => $firstChapter->name, - 'slug' => $firstChapter->slug, - 'book_id' => $firstChapter->book->id, - 'priority' => $firstChapter->priority, + 'id' => $firstChapter->id, + 'name' => $firstChapter->name, + 'slug' => $firstChapter->slug, + 'book_id' => $firstChapter->book->id, + 'priority' => $firstChapter->priority, + 'book_slug' => $firstChapter->book->slug, ], ]]); } @@ -130,6 +131,7 @@ class ChaptersApiTest extends TestCase $resp->assertJson([ 'id' => $chapter->id, 'slug' => $chapter->slug, + 'book_slug' => $chapter->book->slug, 'created_by' => [ 'name' => $chapter->createdBy->name, ], @@ -148,6 +150,7 @@ class ChaptersApiTest extends TestCase ], ], ]); + $resp->assertJsonMissingPath('book'); $resp->assertJsonCount($chapter->pages()->count(), 'pages'); }