Test Setup Failed
Push — master ( 40b2f2...aac3f3 )
by Ben
09:14 queued 11s
created

ToastController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 33
rs 10
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A toggle() 0 5 1
A __construct() 0 3 1
A get() 0 17 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Thinktomorrow\Chief\App\Http\Controllers;
5
6
use Illuminate\Http\Request;
7
use Thinktomorrow\Chief\ManagedModels\States\Publishable\PreviewMode;
8
use Thinktomorrow\Chief\Site\AdminToast;
9
10
final class ToastController extends Controller
11
{
12
    private AdminToast $adminToast;
13
14
    public function __construct(AdminToast $adminToast)
15
    {
16
        $this->adminToast = $adminToast;
17
    }
18
19
    public function toggle()
20
    {
21
        PreviewMode::toggle();
22
23
        return redirect()->back();
24
    }
25
26
    public function get(Request $request)
27
    {
28
        if (! chiefAdmin()) {
29
            return response()->json(['data' => null]);
30
        }
31
32
        $editUrl = $this->adminToast->discoverEditUrl(
33
            $request->input('path'),
34
            $request->input('locale')
35
        );
36
37
        return response()->json(['data' =>
38
            view('chief-site::admin-toast-element', [
39
                'editUrl' => $editUrl,
40
                'toggleUrl' => route('chief.toast.toggle'),
41
                'inPreviewMode' => (bool) $request->input('preview_mode', false),
42
            ])->render(),
43
        ]);
44
    }
45
}
46