Skip to content

Commit 704f39f

Browse files
author
Chri$
committed
refactor LAR-8: refactor and add return
1 parent 832c16c commit 704f39f

File tree

9 files changed

+191
-157
lines changed

9 files changed

+191
-157
lines changed

app/Actions/Article/CreateArticleAction.php

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ final class CreateArticleAction
1616
{
1717
public function execute(CreateArticleData $articleData): Article
1818
{
19-
if ($articleData->published_at && ! ($articleData->published_at instanceof DateTimeInterface)) {
20-
$articleData->published_at = new Carbon(
21-
time: $articleData->published_at,
19+
if ($articleData->publishedAt && ! ($articleData->publishedAt instanceof DateTimeInterface)) {
20+
$articleData->publishedAt = new Carbon(
21+
time: $articleData->publishedAt,
2222
tz: config('app.timezone')
2323
);
2424
}
@@ -28,26 +28,26 @@ public function execute(CreateArticleData $articleData): Article
2828
'title' => $articleData->title,
2929
'slug' => $articleData->title,
3030
'body' => $articleData->body,
31-
'published_at' => $articleData->published_at,
32-
'submitted_at' => $articleData->submitted_at,
33-
'approved_at' => $articleData->approved_at,
34-
'show_toc' => $articleData->show_toc,
35-
'canonical_url' => $articleData->canonical_url,
31+
'published_at' => $articleData->publishedAt,
32+
'submitted_at' => $articleData->submittedAt,
33+
'approved_at' => $articleData->approvedAt,
34+
'show_toc' => $articleData->showToc,
35+
'canonical_url' => $articleData->canonicalUrl,
3636
'user_id' => Auth::id(),
3737
]);
3838

39-
if (collect($article->associateTags)->isNotEmpty()) {
40-
$article->syncTags(tags: $article->associateTags);
39+
if (collect($articleData->tags)->isNotEmpty()) {
40+
$article->syncTags(tags: $articleData->tags);
4141
}
4242

43-
if ($article->file) {
44-
$article->addMedia($article->file->getRealPath())->toMediaCollection('media');
43+
if ($articleData->file) {
44+
$article->addMedia($articleData->file->getRealPath())->toMediaCollection('media');
4545
}
4646

4747
if ($article->isAwaitingApproval()) {
4848
// Envoi de la notification sur le channel Telegram pour la validation de l'article.
4949
Auth::user()?->notify(new PostArticleToTelegram($article));
50-
session()->flash('status', __('Merci d\'avoir soumis votre article. Vous aurez des nouvelles que lorsque nous accepterons votre article.'));
50+
session()->flash('status', __('notifications.article.created'));
5151
}
5252

5353
if (Auth::user()?->hasAnyRole(['admin', 'moderator'])) {

app/Data/Article/CreateArticleData.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace App\Data\Article;
66

77
use Carbon\Carbon;
8+
use Illuminate\Http\UploadedFile;
89
use Spatie\LaravelData\Data;
910

1011
final class CreateArticleData extends Data
@@ -13,11 +14,12 @@ public function __construct(
1314
public string $title,
1415
public string $slug,
1516
public string $body,
16-
public Carbon $published_at,
17-
public ?Carbon $submitted_at,
18-
public ?Carbon $approved_at,
19-
public string $show_toc,
20-
public string $canonical_url,
21-
public array $associateTags = [],
17+
public string $showToc,
18+
public string $canonicalUrl,
19+
public ?Carbon $publishedAt,
20+
public ?Carbon $submittedAt,
21+
public ?Carbon $approvedAt,
22+
public ?UploadedFile $file,
23+
public array $tags = [],
2224
) {}
2325
}

app/Livewire/Articles/Create.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,11 @@ public function store(): void
5353
'title' => $this->title,
5454
'slug' => $this->slug,
5555
'body' => $this->body,
56-
'published_at' => $this->published_at,
57-
'submitted_at' => $this->submitted_at,
58-
'approved_at' => $this->approved_at,
59-
'show_toc' => $this->show_toc,
60-
'canonical_url' => $this->canonical_url,
61-
'user_id' => $user->id,
56+
'publishedAt' => $this->published_at,
57+
'submittedAt' => $this->submitted_at,
58+
'approvedAt' => $this->approved_at,
59+
'showToc' => $this->show_toc,
60+
'canonicalUrl' => $this->canonical_url,
6261
]));
6362

6463
$user->hasRole('user') ?

app/Traits/WithArticleAttributes.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ trait WithArticleAttributes
3939
'tags_selected' => 'nullable|array',
4040
'canonical_url' => 'nullable|url',
4141
'file' => 'nullable|image|max:2048', // 1MB Max
42+
'show_toc' => 'boolean',
4243
];
4344

4445
public function removeImage(): void

0 commit comments

Comments
 (0)