GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

AdController::edit()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use App\Ad;
6
use App\Platform;
7
use App\Platforms\Traits\GetHelperClassFromPlatform;
8
use Illuminate\Foundation\Validation\ValidatesRequests;
9
use Illuminate\Http\Request;
10
11
class AdController extends Controller
12
{
13
    use ValidatesRequests;
14
    use GetHelperClassFromPlatform;
0 ignored issues
show
Bug introduced by
The trait App\Platforms\Traits\GetHelperClassFromPlatform requires the property $type which is not provided by App\Http\Controllers\AdController.
Loading history...
15
16
    protected $formRules = [
17
        'title' => 'required|max:255',
18
        'description' => 'required',
19
        'img_url' => 'required',
20
        'price' => 'required|numeric',
21
    ];
22
23
    /**
24
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
25
     */
26
    public function index()
27
    {
28
        $ads = Ad::with('platforms')->get();
29
        $platforms = Platform::all();
30
        return view('pages.ads.list', compact('ads', 'platforms'));
31
    }
32
33
    /**
34
     * @param Ad $ad
35
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
36
     */
37
    public function edit(Ad $ad)
38
    {
39
        return view('pages.ads.edit', compact('ad'));
40
    }
41
42
    /**
43
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
44
     */
45
    public function create()
46
    {
47
        return view('pages.ads.create');
48
    }
49
50
    /**
51
     * @param Request $request
52
     * @param Ad $ad
53
     * @return \Illuminate\Http\RedirectResponse
54
     */
55
    public function update(Request $request, Ad $ad)
56
    {
57
        $validatedData = $request->validate($this->formRules);
58
59
        $ad->update($validatedData);
60
61
        $request->session()->flash('success', 'Annonce mise à jour');
62
63
        return redirect()->route('ads.list');
64
    }
65
66
    /**
67
     * @param Request $request
68
     * @return \Illuminate\Http\RedirectResponse
69
     */
70
    public function store(Request $request)
71
    {
72
        $validatedData = $request->validate($this->formRules);
73
74
        Ad::create($validatedData);
75
76
        return redirect()->route('ads.list');
77
    }
78
79
    /**
80
     * @param Request $request
81
     * @param Ad $ad
82
     * @return \Illuminate\Http\RedirectResponse
83
     * @throws \Exception
84
     */
85
    public function delete(Request $request, Ad $ad)
86
    {
87
        $publishedPlatforms = $ad->platforms;
88
89
        if (count($publishedPlatforms) > 0) {
90
            try {
91
                $publishedPlatforms->each(function ($platform) use ($ad) {
92
                    $platformHelper = $this->getHelperClassFromPlatform($platform);
93
                    $platformHelper->unpublish($ad, $platform);
94
                    $ad->platforms()->detach($platform->id);
95
                });
96
            } catch (\Exception $e) {
97
                $request->session()->flash('danger', $e->getMessage());
98
                return redirect()->route('ads.list');
99
            }
100
        }
101
102
        $ad->delete();
103
        $request->session()->flash('success', 'Annonce supprimée');
104
        return redirect()->route('ads.list');
105
    }
106
107
    /**
108
     * @param Request $request
109
     * @param Ad $ad
110
     * @param Platform $platform
111
     * @return \Illuminate\Http\RedirectResponse
112
     */
113
    public function togglePublish(Request $request, Ad $ad, Platform $platform)
114
    {
115
        $platformHelper = $this->getHelperClassFromPlatform($platform);
116
        $isPublished = $ad->platforms()->where('platform_id', $platform->id)->first() !== null;
117
118
        try {
119
            if ($isPublished) {
120
                $platformHelper->unpublish($ad, $platform);
121
                $ad->platforms()->detach($platform->id);
122
            } else {
123
                $publicationItemId = $platformHelper->publish($ad, $platform);
124
                $ad->platforms()->attach($platform->id, ['publication_item_id' => $publicationItemId]);
125
            }
126
            $request->session()->flash('success', 'Annonce mise à jour');
127
        } catch (\Exception $e) {
128
            $request->session()->flash('danger', $e->getMessage());
129
        }
130
131
        return redirect()->route('ads.list');
132
    }
133
}
134