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 . ')',
]);