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

ToastController::get()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 17
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 11
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 17
rs 9.9
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