SmsController::shoot()   C
last analyzed

Complexity

Conditions 14
Paths 12

Size

Total Lines 64
Code Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 64
rs 6.0222
c 0
b 0
f 0
cc 14
eloc 35
nc 12
nop 1

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace App\Http\Controllers;
4
5
use Illuminate\Http\Request;
6
use Auth;
7
use Carbon\Carbon;
8
use App\Sms_trigger;
9
use App\Sms_event;
10
use App\Member;
11
use App\Enquiry;
12
use App\Sms_log;
13
use App\Http\Requests;
14
use Illuminate\Pagination\Paginator;
15
use App\Http\Controllers\Controller;
16
use Lubus\Constants\Status;
0 ignored issues
show
Bug introduced by
The type Lubus\Constants\Status was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
17
18
class SmsController extends Controller
19
{
20
    public function __construct()
21
    {
22
        $this->middleware('auth');
23
    }
24
25
    public function triggersIndex(Request $request)
26
    {
27
    	$triggers = Sms_trigger::search($request->input('search'))->get();
28
29
    	return view('sms.triggers.index',compact('triggers'));
30
    }
31
32
    public function triggerUpdate(Request $request)
33
    {
34
        $DBtriggers = Sms_trigger::all();
35
        $Clienttriggers = collect($request->triggers);
36
        //dd($request->triggers);
37
38
    	foreach ($DBtriggers as $trigger) 
39
        {
40
            $status = ($Clienttriggers->contains($trigger->id) ? 1 : 0);
41
            
42
            Sms_trigger::where('id','=',$trigger['id'])->update(['status' => $status]);
43
        }
44
45
    	flash()->success('Message triggers were successfully updated');
46
    	return redirect('sms/triggers');
47
    }
48
49
    public function eventsIndex(Request $request)
50
    {
51
        $events = Sms_event::search($request->input('search'))->paginate(10);
52
53
        return view('sms.events.index',compact('events'));
54
    }
55
56
    public function createEvent()
57
    {
58
        return view('sms.events.create');
59
    }
60
61
    public function storeEvent(Request $request)
62
    {
63
        $event = new Sms_event($request->all());
64
65
        $event->createdBy()->associate(Auth::user());
66
        $event->updatedBy()->associate(Auth::user());
67
68
        $event->save();
69
70
        flash()->success('Event was successfully created');
71
72
        return redirect('sms/events');
73
    }
74
75
    public function editEvent($id)
76
    {
77
        $event = Sms_event::findOrFail($id);
78
79
        return view('sms.events.edit', compact('event'));
80
    }
81
82
    public function updateEvent($id, Request $request)
83
    {
84
        $event = Sms_event::findOrFail($id);
85
86
        $event->update($request->all());
87
        $event->updatedBy()->associate(Auth::user());
88
        $event->save();
89
        flash()->success('SMS events details were successfully updated');
90
        return redirect('sms/events');
91
    }
92
93
    public function destroyEvent($id)
94
    {
95
        $event = Sms_event::findOrFail($id);
96
        $event->delete();
97
98
        flash()->success('SMS event was successfully deleted');
99
        return redirect('sms/events');
100
    }
101
102
    public function send()
103
    {
104
        return view('sms.send');
105
    }
106
107
    public function shoot(Request $request)
108
    {
109
        $sms_text = $request->message;
110
        $sender_id = $request->sender_id;
111
112
        foreach($request->send as $sendnow)
113
        {
114
            switch ($sendnow) {
115
                case 0:
116
                        $recievers = Member::where('status',1)->get();
117
                        foreach ($recievers as $reciever) 
118
                        {
119
                            \Utilities::Sms($sender_id,$reciever->contact,$sms_text,true);
120
                        }
121
                        break;
122
123
                    case 1:
124
                        $recievers = Member::where('status',0)->get();
125
                        foreach ($recievers as $reciever) 
126
                        {
127
                            \Utilities::Sms($sender_id,$reciever->contact,$sms_text,true);
128
                        }
129
                        break;
130
131
                    case 2:
132
                        $recievers = Enquiry::where('status',1)->get();
133
                        foreach ($recievers as $reciever) 
134
                        {
135
                            \Utilities::Sms($sender_id,$reciever->contact,$sms_text,true);
136
                        }
137
                        
138
                        break;
139
140
                    case 3:
141
                        $recievers = Enquiry::where('status',0)->get();
142
                        foreach ($recievers as $reciever) 
143
                        {
144
                            \Utilities::Sms($sender_id,$reciever->contact,$sms_text,true);
145
                        }
146
                        
147
                        break;
148
149
                case 4:
150
                    if($request->customcontacts != '')
0 ignored issues
show
Coding Style Comprehensibility introduced by
Consider adding a comment if this fall-through is intended.
Loading history...
151
                    {
152
                        $custom = explode(",",str_replace(" ","",($request->customcontacts)));
153
                        foreach($custom as $number)
154
                        {
155
                            if (starts_with($number,'0')) 
156
                            {
157
                                $number = substr($number, 1);
158
                            }
159
                            \Utilities::Sms($sender_id,$number,$sms_text,true);
160
                        }
161
                    }
162
                
163
                default:
164
                    # code...
165
                    break;
166
            }
167
        }
168
169
        flash()->success('Message has been successfully sent');
170
        return redirect('sms/send');
171
    }
172
173
    public function logIndex(Request $request)
174
    {
175
        $smslogs = Sms_log::orderBy('send_time','desc')->search('"'.$request->input('search').'"')->paginate(10);
176
177
        return view('sms.log',compact('smslogs'));
178
    }
179
180
    public function logRefresh()
181
    {
182
        \Utilities::smsStatusUpdate();
183
184
        flash()->success('SMS logs have been refreshed');
185
        return back();
186
    }
187
}