Completed
Push — master ( f87f92...4fadbd )
by Sebastian
06:10
created

ArticlesController::updateOnlineToggle()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 5
nc 2
nop 2
dl 0
loc 9
rs 9.6666
c 0
b 0
f 0
1
<?php
2
3
namespace App\Http\Controllers\Back;
4
5
use App\Http\Requests\Back\ArticleRequest;
6
use App\Models\Article;
7
use App\Models\Enums\SpecialArticle;
8
use App\Repositories\ArticleRepository;
9
use Illuminate\Database\Eloquent\Model;
10
use Illuminate\Foundation\Http\FormRequest;
11
use Spatie\Blender\Model\Controller;
12
13
class ArticlesController extends Controller
14
{
15
    protected function make(): Article
16
    {
17
        return Article::create();
18
    }
19
20
    protected function updateFromRequest(Article $article, ArticleRequest $request)
21
    {
22
        $article->parent_id = $request->get('parent_id') ?: null;
23
24
        $this->updateModel($article, $request);
25
    }
26
27
    protected function updateOnlineToggle(Model $model, FormRequest $request)
28
    {
29
        if ($model->isSpecialArticle()) {
30
            $model->online = true;
31
            return;
32
        }
33
34
        parent::updateOnlineToggle($model, $request);
35
    }
36
37
    public function edit(int $id)
38
    {
39
        $parentMenuItems = app(ArticleRepository::class)
40
            ->getTopLevel()
41
            ->filter(function (Article $article) {
42
                return $article->technical_name != SpecialArticle::HOME;
43
            })
44
            ->pluck('name', 'id')
45
            ->prepend('Geen', 0);
46
47
        return parent::edit($id)->with(compact('parentMenuItems'));
48
    }
49
}
50