From 859934d6a3f9c94298dee1f177b95f192f4a90b7 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Wed, 20 Oct 2021 10:49:45 +0100 Subject: [PATCH] Applied latest changes from styleCI --- .../Api/AttachmentApiController.php | 19 +++-- app/Uploads/Attachment.php | 13 ++-- app/Uploads/AttachmentService.php | 1 + tests/Api/AttachmentsApiTest.php | 78 +++++++++---------- tests/Entity/PageContentTest.php | 4 +- 5 files changed, 60 insertions(+), 55 deletions(-) diff --git a/app/Http/Controllers/Api/AttachmentApiController.php b/app/Http/Controllers/Api/AttachmentApiController.php index 353cb058d..06d9f6907 100644 --- a/app/Http/Controllers/Api/AttachmentApiController.php +++ b/app/Http/Controllers/Api/AttachmentApiController.php @@ -17,16 +17,16 @@ class AttachmentApiController extends ApiController protected $rules = [ 'create' => [ - 'name' => 'required|min:1|max:255|string', + 'name' => 'required|min:1|max:255|string', 'uploaded_to' => 'required|integer|exists:pages,id', - 'file' => 'required_without:link|file', - 'link' => 'required_without:file|min:1|max:255|safe_url' + 'file' => 'required_without:link|file', + 'link' => 'required_without:file|min:1|max:255|safe_url', ], 'update' => [ - 'name' => 'min:1|max:255|string', + 'name' => 'min:1|max:255|string', 'uploaded_to' => 'integer|exists:pages,id', - 'file' => 'file', - 'link' => 'min:1|max:255|safe_url' + 'file' => 'file', + 'link' => 'min:1|max:255|safe_url', ], ]; @@ -72,11 +72,14 @@ class AttachmentApiController extends ApiController $attachment = $this->attachmentService->saveNewUpload($uploadedFile, $page->id); } else { $attachment = $this->attachmentService->saveNewFromLink( - $requestData['name'], $requestData['link'], $page->id + $requestData['name'], + $requestData['link'], + $page->id ); } $this->attachmentService->updateFile($attachment, $requestData); + return response()->json($attachment); } @@ -140,6 +143,7 @@ class AttachmentApiController extends ApiController } $this->attachmentService->updateFile($attachment, $requestData); + return response()->json($attachment); } @@ -158,5 +162,4 @@ class AttachmentApiController extends ApiController return response('', 204); } - } diff --git a/app/Uploads/Attachment.php b/app/Uploads/Attachment.php index 410a7d4dd..a470ec534 100644 --- a/app/Uploads/Attachment.php +++ b/app/Uploads/Attachment.php @@ -12,15 +12,15 @@ use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\BelongsTo; /** - * @property int $id + * @property int $id * @property string $name * @property string $path * @property string $extension - * @property ?Page $page - * @property bool $external - * @property int $uploaded_to - * @property User $updatedBy - * @property User $createdBy + * @property ?Page $page + * @property bool $external + * @property int $uploaded_to + * @property User $updatedBy + * @property User $createdBy * * @method static Entity|Builder visible() */ @@ -90,6 +90,7 @@ class Attachment extends Model public function scopeVisible(): Builder { $permissionService = app()->make(PermissionService::class); + return $permissionService->filterRelatedEntity( Page::class, Attachment::query(), diff --git a/app/Uploads/AttachmentService.php b/app/Uploads/AttachmentService.php index 2ad1663ff..f7a0918c6 100644 --- a/app/Uploads/AttachmentService.php +++ b/app/Uploads/AttachmentService.php @@ -171,6 +171,7 @@ class AttachmentService } $attachment->save(); + return $attachment->refresh(); } diff --git a/tests/Api/AttachmentsApiTest.php b/tests/Api/AttachmentsApiTest.php index 88b5b9ddd..40624dcdf 100644 --- a/tests/Api/AttachmentsApiTest.php +++ b/tests/Api/AttachmentsApiTest.php @@ -18,17 +18,17 @@ class AttachmentsApiTest extends TestCase $this->actingAsApiEditor(); $page = Page::query()->first(); $attachment = $this->createAttachmentForPage($page, [ - 'name' => 'My test attachment', + 'name' => 'My test attachment', 'external' => true, ]); $resp = $this->getJson($this->baseEndpoint . '?count=1&sort=+id'); $resp->assertJson(['data' => [ [ - 'id' => $attachment->id, - 'name' => 'My test attachment', + 'id' => $attachment->id, + 'name' => 'My test attachment', 'uploaded_to' => $page->id, - 'external' => true, + 'external' => true, ], ]]); } @@ -39,7 +39,7 @@ class AttachmentsApiTest extends TestCase /** @var Page $page */ $page = Page::query()->first(); $attachment = $this->createAttachmentForPage($page, [ - 'name' => 'My test attachment', + 'name' => 'My test attachment', 'external' => true, ]); @@ -69,9 +69,9 @@ class AttachmentsApiTest extends TestCase $page = Page::query()->first(); $details = [ - 'name' => 'My attachment', + 'name' => 'My attachment', 'uploaded_to' => $page->id, - 'link' => 'https://cats.example.com', + 'link' => 'https://cats.example.com', ]; $resp = $this->postJson($this->baseEndpoint, $details); @@ -89,7 +89,7 @@ class AttachmentsApiTest extends TestCase $file = $this->getTestFile('textfile.txt'); $details = [ - 'name' => 'My attachment', + 'name' => 'My attachment', 'uploaded_to' => $page->id, ]; @@ -110,14 +110,14 @@ class AttachmentsApiTest extends TestCase $details = [ 'uploaded_to' => $page->id, - 'link' => 'https://example.com', + 'link' => 'https://example.com', ]; $resp = $this->postJson($this->baseEndpoint, $details); $resp->assertStatus(422); $resp->assertJson([ 'error' => [ - 'message' => 'The given data was invalid.', + 'message' => 'The given data was invalid.', 'validation' => [ 'name' => ['The name field is required.'], ], @@ -133,7 +133,7 @@ class AttachmentsApiTest extends TestCase $page = Page::query()->first(); $details = [ - 'name' => 'my attachment', + 'name' => 'my attachment', 'uploaded_to' => $page->id, ]; @@ -141,10 +141,10 @@ class AttachmentsApiTest extends TestCase $resp->assertStatus(422); $resp->assertJson([ 'error' => [ - 'message' => 'The given data was invalid.', + 'message' => 'The given data was invalid.', 'validation' => [ - "file" => ["The file field is required when link is not present."], - "link" => ["The link field is required when file is not present."], + 'file' => ['The file field is required when link is not present.'], + 'link' => ['The link field is required when file is not present.'], ], 'code' => 422, ], @@ -158,8 +158,8 @@ class AttachmentsApiTest extends TestCase $page = Page::query()->first(); $attachment = $this->createAttachmentForPage($page, [ - 'name' => 'my attachment', - 'path' => 'https://example.com', + 'name' => 'my attachment', + 'path' => 'https://example.com', 'order' => 1, ]); @@ -167,20 +167,20 @@ class AttachmentsApiTest extends TestCase $resp->assertStatus(200); $resp->assertJson([ - 'id' => $attachment->id, - 'content' => 'https://example.com', - 'external' => true, + 'id' => $attachment->id, + 'content' => 'https://example.com', + 'external' => true, 'uploaded_to' => $page->id, - 'order' => 1, - 'created_by' => [ + 'order' => 1, + 'created_by' => [ 'name' => $attachment->createdBy->name, ], 'updated_by' => [ 'name' => $attachment->createdBy->name, ], 'links' => [ - "html" => "id}\">my attachment", - "markdown" => "[my attachment](http://localhost/attachments/{$attachment->id})" + 'html' => "id}\">my attachment", + 'markdown' => "[my attachment](http://localhost/attachments/{$attachment->id})", ], ]); } @@ -193,7 +193,7 @@ class AttachmentsApiTest extends TestCase $file = $this->getTestFile('textfile.txt'); $details = [ - 'name' => 'My file attachment', + 'name' => 'My file attachment', 'uploaded_to' => $page->id, ]; $this->call('POST', $this->baseEndpoint, $details, [], ['file' => $file]); @@ -204,20 +204,20 @@ class AttachmentsApiTest extends TestCase $resp->assertStatus(200); $resp->assertJson([ - 'id' => $attachment->id, - 'content' => base64_encode(file_get_contents(storage_path($attachment->path))), - 'external' => false, + 'id' => $attachment->id, + 'content' => base64_encode(file_get_contents(storage_path($attachment->path))), + 'external' => false, 'uploaded_to' => $page->id, - 'order' => 1, - 'created_by' => [ + 'order' => 1, + 'created_by' => [ 'name' => $attachment->createdBy->name, ], 'updated_by' => [ 'name' => $attachment->updatedBy->name, ], 'links' => [ - "html" => "id}\">My file attachment", - "markdown" => "[My file attachment](http://localhost/attachments/{$attachment->id})" + 'html' => "id}\">My file attachment", + 'markdown' => "[My file attachment](http://localhost/attachments/{$attachment->id})", ], ]); @@ -250,7 +250,6 @@ class AttachmentsApiTest extends TestCase $attachment = $this->createAttachmentForPage($page); $file = $this->getTestFile('textfile.txt'); - $resp = $this->call('PUT', "{$this->baseEndpoint}/{$attachment->id}", ['name' => 'My updated file'], [], ['file' => $file]); $resp->assertStatus(200); @@ -278,7 +277,7 @@ class AttachmentsApiTest extends TestCase $details = [ 'name' => 'My updated API attachment', - 'link' => 'https://cats.example.com' + 'link' => 'https://cats.example.com', ]; $resp = $this->putJson("{$this->baseEndpoint}/{$attachment->id}", $details); @@ -310,13 +309,14 @@ class AttachmentsApiTest extends TestCase /** @var Attachment $attachment */ $attachment = $page->attachments()->forceCreate(array_merge([ 'uploaded_to' => $page->id, - 'name' => 'test attachment', - 'external' => true, - 'order' => 1, - 'created_by' => $admin->id, - 'updated_by' => $admin->id, - 'path' => 'https://attachment.example.com' + 'name' => 'test attachment', + 'external' => true, + 'order' => 1, + 'created_by' => $admin->id, + 'updated_by' => $admin->id, + 'path' => 'https://attachment.example.com', ], $attributes)); + return $attachment; } diff --git a/tests/Entity/PageContentTest.php b/tests/Entity/PageContentTest.php index 60fa6fd77..ca2a24131 100644 --- a/tests/Entity/PageContentTest.php +++ b/tests/Entity/PageContentTest.php @@ -614,7 +614,7 @@ class PageContentTest extends TestCase $page = Page::query()->first(); $this->put($page->getUrl(), [ - 'name' => $page->name, 'summary' => '', + 'name' => $page->name, 'summary' => '', 'markdown' => 'test ![test](data:image/jpeg;base64,' . $this->base64Jpeg . ')', ]); @@ -636,7 +636,7 @@ class PageContentTest extends TestCase $page = Page::query()->first(); $this->put($page->getUrl(), [ - 'name' => $page->name, 'summary' => '', + 'name' => $page->name, 'summary' => '', 'markdown' => 'test ![test](data:image/jiff;base64,' . $this->base64Jpeg . ')', ]);