Issues (465)

app/Http/Controllers/EventController.php (8 issues)

1
<?php
2
3
namespace App\Http\Controllers;
4
5
use App\Models\Event;
6
use Illuminate\Http\Request;
7
8
class EventController extends Controller
9
{
10
    /**
11
     * Display a listing of the resource.
12
     *
13
     * @return \Illuminate\Http\Response
14
     */
15
    public function index(Request $request)
16
    {
17
        $query = Event::query();
18
19
        if ($request->has('searchTerm')) {
20
            $columnsToSearch = ['name', 'email', 'phone'];
21
            $search_term = json_decode($request->searchTerm)->searchTerm;
22
            if (! empty($search_term)) {
23
                $searchQuery = '%'.$search_term.'%';
24
                foreach ($columnsToSearch as $column) {
25
                    $query->orWhere($column, 'LIKE', $searchQuery);
26
                }
27
            }
28
        }
29
30
        if ($request->has('columnFilters')) {
31
            $filters = get_object_vars(json_decode($request->columnFilters));
32
33
            foreach ($filters as $key => $value) {
34
                if (! empty($value)) {
35
                    $query->orWhere($key, 'like', '%'.$value.'%');
36
                }
37
            }
38
        }
39
40
        if ($request->has('sort.0')) {
41
            $sort = json_decode($request->sort[0]);
42
            $query->orderBy($sort->field, $sort->type);
43
        }
44
45
        if ($request->has('perPage')) {
46
            $rows = $query->paginate($request->perPage);
47
        }
48
49
        return $rows;
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $rows does not seem to be defined for all execution paths leading up to this point.
Loading history...
50
    }
51
52
    /**
53
     * Show the form for creating a new resource.
54
     *
55
     * @return \Illuminate\Http\Response
56
     */
57
    public function create()
58
    {
59
        //
60
    }
61
62
    /**
63
     * Store a newly created resource in storage.
64
     *
65
     * @param  \Illuminate\Http\Request  $request
66
     * @return \Illuminate\Http\Response
67
     */
68
    public function store(Request $request)
69
    {
70
        $request->validate([
71
            'name' => 'required',
72
        ]);
73
74
        return Event::create([
0 ignored issues
show
Bug Best Practice introduced by
The expression return App\Models\Event:...me' => $request->name)) also could return the type App\Models\Event which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
75
            'name' => $request->name,
76
        ]);
77
    }
78
79
    /**
80
     * Display the specified resource.
81
     *
82
     * @param  int  $id
83
     * @return \Illuminate\Http\Response
84
     */
85
    public function show($id)
86
    {
87
        return Event::find($id);
0 ignored issues
show
Bug Best Practice introduced by
The expression return App\Models\Event::find($id) also could return the type App\Models\Event which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
88
    }
89
90
    /**
91
     * Show the form for editing the specified resource.
92
     *
93
     * @param  int  $id
94
     * @return \Illuminate\Http\Response
95
     */
96
    public function edit($id)
0 ignored issues
show
The parameter $id is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

96
    public function edit(/** @scrutinizer ignore-unused */ $id)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
97
    {
98
        //
99
    }
100
101
    /**
102
     * Update the specified resource in storage.
103
     *
104
     * @param  \Illuminate\Http\Request  $request
105
     * @param  int  $id
106
     * @return \Illuminate\Http\Response
107
     */
108
    public function update(Request $request, $id)
109
    {
110
        $request->validate([
111
            'name' => 'required',
112
        ]);
113
114
        $event = Event::find($id);
115
        $event->name = $request->name;
0 ignored issues
show
The property name does not seem to exist on App\Models\Event. Are you sure there is no database migration missing?

Checks if undeclared accessed properties appear in database migrations and if the creating migration is correct.

Loading history...
116
        $event->save();
117
118
        return $event;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $event also could return the type App\Models\Event which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
119
    }
120
121
    /**
122
     * Remove the specified resource from storage.
123
     *
124
     * @param  int  $id
125
     * @return \Illuminate\Http\Response
126
     */
127
    public function destroy($id)
128
    {
129
        $event = Event::find($id);
130
        if ($event) {
131
            $event->delete();
132
133
            return 'true';
0 ignored issues
show
Bug Best Practice introduced by
The expression return 'true' returns the type string which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
134
        }
135
136
        return 'false';
0 ignored issues
show
Bug Best Practice introduced by
The expression return 'false' returns the type string which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
137
    }
138
}
139