Passed
Push — dependabot/npm_and_yarn/string... ( b56eb5...bc569b )
by
unknown
45:46 queued 33s
created

ArchiveController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Test Coverage

Coverage 42.86%

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 42
ccs 9
cts 21
cp 0.4286
rs 10
c 0
b 0
f 0
wmc 4
1
<?php
2
3
namespace Thinktomorrow\Chief\App\Http\Controllers\Back\Assistants;
4
5
use Illuminate\Http\Request;
6
use Thinktomorrow\Chief\Management\Managers;
7
use Thinktomorrow\Chief\App\Http\Controllers\Controller;
8
9
class ArchiveController extends Controller
10
{
11
    /** @var Managers */
12
    private $managers;
13
14
    public function __construct(Managers $managers)
15
    {
16
        $this->managers = $managers;
17
    }
18
19
    public function index(Request $request, string $key)
20
    {
21
        $manager = $this->managers->findByKey($key);
22
23
        $managers = $manager->assistant('archive')->findAll();
24
25
        return view('chief::back.managers.archive.index', [
26
            'modelManager' => $manager,
27
            'managers' => $managers,
28
        ]);
29
    }
30
31
    public function archive($key, $id)
32
    {
33
        $manager = $this->managers->findByKey($key, $id);
34
35
        $manager->assistant('archive')
36
                        ->guard('archive')
37
                        ->archive();
38
39
        return redirect()->back()->with('messages.success', $manager->details()->title .' is gearchiveerd.');
40
    }
41
42
    public function unarchive($key, $id)
43
    {
44
        $manager = $this->managers->findByKey($key, $id);
45
46
        $manager->assistant('archive')
47
            ->guard('unarchive')
48
            ->unarchive();
49
50
        return redirect()->to($manager->route('index'))->with('messages.success', $manager->details()->title .' is hersteld.');
51
    }
52
}
53