Completed
Push — development ( cfbc63...a64cca )
by Ashutosh
13:59
created

SettingsController::destroyEmail()   A

Complexity

Conditions 5
Paths 9

Size

Total Lines 46
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 25
dl 0
loc 46
rs 9.2088
c 0
b 0
f 0
cc 5
nc 9
nop 1
1
<?php
2
3
namespace App\Http\Controllers\Common;
4
5
use App\ApiKey;
6
use App\Model\Common\Setting;
7
use App\Model\Common\Template;
8
use App\Model\Plugin;
9
use App\User;
10
use Bugsnag;
11
use GrahamCampbell\Markdown\Facades\Markdown;
12
use Illuminate\Http\Request;
13
use Illuminate\Support\Facades\Input;
14
use Spatie\Activitylog\Models\Activity;
15
16
class SettingsController extends BaseSettingsController
17
{
18
    public $apikey;
19
20
    public function __construct()
21
    {
22
        $this->middleware('auth', ['except' => 'checkPaymentGateway']);
23
        $this->middleware('admin', ['except' => 'checkPaymentGateway']);
24
25
        $apikey = new ApiKey();
26
        $this->apikey = $apikey;
27
    }
28
29
    public function settings(Setting $settings)
30
    {
31
        if (!$settings->where('id', '1')->first()) {
32
            $settings->create(['company' => '']);
33
        }
34
35
        return view('themes.default1.common.admin-settings');
36
        //return view('themes.default1.common.settings', compact('setting', 'template'));
37
    }
38
39
    public function plugins()
40
    {
41
        return view('themes.default1.common.plugins');
42
    }
43
44
    public function getKeys(ApiKey $apikeys)
45
    {
46
        try {
47
            $model = $apikeys->find(1);
48
49
            return view('themes.default1.common.apikey', compact('model'));
50
        } catch (\Exception $ex) {
51
            return redirect('/')->with('fails', $ex->getMessage());
52
        }
53
    }
54
55
    public function postKeys(ApiKey $apikeys, Request $request)
56
    {
57
        try {
58
            $keys = $apikeys->find(1);
59
            $keys->fill($request->input())->save();
60
61
            return redirect()->back()->with('success', \Lang::get('message.updated-successfully'));
62
        } catch (\Exception $ex) {
63
            return redirect()->back()->with('fails', $ex->getMessage());
64
        }
65
    }
66
67
    public static function checkPaymentGateway($currency)
68
    {
69
        try {
70
            $plugins = new Plugin();
71
            $models = [];
72
            $gateways = 'Razorpay';
73
74
            return $gateways;
75
        } catch (\Exception $ex) {
76
            return redirect()->back()->with('fails', $ex->getMessage());
77
        }
78
    }
79
80
    public function settingsSystem(Setting $settings)
81
    {
82
        try {
83
            $set = $settings->find(1);
84
85
            return view('themes.default1.common.setting.system', compact('set'));
86
        } catch (\Exception $ex) {
87
            return redirect()->back()->with('fails', $ex->getMessage());
88
        }
89
    }
90
91
    public function postSettingsSystem(Setting $settings, Request $request)
92
    {
93
        try {
94
            $setting = $settings->find(1);
95
            if ($request->hasFile('logo')) {
96
                $name = $request->file('logo')->getClientOriginalName();
97
                $destinationPath = public_path('cart/img/logo');
98
                $request->file('logo')->move($destinationPath, $name);
99
                $setting->logo = $name;
100
            }
101
            $setting->fill($request->except('password', 'logo'))->save();
102
103
            return redirect()->back()->with('success', \Lang::get('message.updated-successfully'));
104
        } catch (\Exception $ex) {
105
            return redirect()->back()->with('fails', $ex->getMessage());
106
        }
107
    }
108
109
    public function settingsEmail(Setting $settings)
110
    {
111
        try {
112
            $set = $settings->find(1);
113
114
            return view('themes.default1.common.setting.email', compact('set'));
115
        } catch (\Exception $ex) {
116
            return redirect()->back()->with('fails', $ex->getMessage());
117
        }
118
    }
119
120
    public function postSettingsEmail(Setting $settings, Request $request)
121
    {
122
        $this->validate($request, [
123
                'email'     => 'required',
124
                'password'  => 'required',
125
                'driver'    => 'required',
126
                'port'      => 'required',
127
                'encryption'=> 'required',
128
            ]);
129
130
        try {
131
            $setting = $settings->find(1);
132
            $setting->fill($request->input())->save();
133
134
            return redirect()->back()->with('success', \Lang::get('message.updated-successfully'));
135
        } catch (\Exception $ex) {
136
            return redirect()->back()->with('fails', $ex->getMessage());
137
        }
138
    }
139
140
    public function settingsTemplate(Setting $settings)
141
    {
142
        try {
143
            $set = $settings->find(1);
144
            $template = new Template();
145
            //$templates = $template->lists('name', 'id')->toArray();
146
            return view('themes.default1.common.setting.template', compact('set', 'template'));
147
        } catch (\Exception $ex) {
148
            return redirect()->back()->with('fails', $ex->getMessage());
149
        }
150
    }
151
152
    public function postSettingsTemplate(Setting $settings, Request $request)
153
    {
154
        try {
155
            $setting = $settings->find(1);
156
            $setting->fill($request->input())->save();
157
158
            return redirect()->back()->with('success', \Lang::get('message.updated-successfully'));
159
        } catch (\Exception $ex) {
160
            return redirect()->back()->with('fails', $ex->getMessage());
161
        }
162
    }
163
164
    public function settingsError(Setting $settings)
165
    {
166
        try {
167
            $set = $settings->find(1);
168
169
            return view('themes.default1.common.setting.error-log', compact('set'));
170
        } catch (\Exception $ex) {
171
            return redirect()->back()->with('fails', $ex->getMessage());
172
        }
173
    }
174
175
    public function settingsActivity(Activity $activities)
176
    {
177
        try {
178
            $activity = $activities->all();
179
180
            return view('themes.default1.common.Activity-Log', compact('activity'));
181
        } catch (\Exception $ex) {
182
            return redirect()->back()->with('fails', $ex->getMessage());
183
        }
184
    }
185
186
    public function settingsMail()
187
    {
188
        try {
189
            return view('themes.default1.common.email-log');
190
        } catch (\Exception $ex) {
191
            return redirect()->back()->with('fails', $ex->getMessage());
192
        }
193
    }
194
195
    public function getActivity()
196
    {
197
        try {
198
            $activity_log = Activity::select('id', 'log_name', 'description',
199
                'subject_id', 'subject_type', 'causer_id', 'properties', 'created_at')->get();
200
201
            return\ DataTables::of($activity_log)
202
             ->addColumn('checkbox', function ($model) {
203
                 return "<input type='checkbox' class='activity' value=".$model->id.' name=select[] id=check>';
204
             })
205
                           ->addColumn('name', function ($model) {
206
                               return ucfirst($model->log_name);
207
                           })
208
                             ->addColumn('description', function ($model) {
209
                                 return ucfirst($model->description);
210
                             })
211
                          ->addColumn('username', function ($model) {
212
                              $causer_id = $model->causer_id;
213
                              $names = User::where('id', $causer_id)->pluck('last_name', 'first_name');
214
                              foreach ($names as $key => $value) {
215
                                  $fullName = $key.' '.$value;
216
217
                                  return $fullName;
218
                              }
219
                          })
220
                              ->addColumn('role', function ($model) {
221
                                  $causer_id = $model->causer_id;
222
                                  $role = User::where('id', $causer_id)->pluck('role');
223
224
                                  return json_decode($role);
225
                              })
226
                               ->addColumn('new', function ($model) {
227
                                   $properties = ($model->properties);
228
                                   $newEntry = $this->getNewEntry($properties, $model);
229
230
                                   return $newEntry;
231
                               })
232
                                ->addColumn('old', function ($model) {
233
                                    $data = ($model->properties);
234
                                    $oldEntry = $this->getOldEntry($data, $model);
235
236
                                    return $oldEntry;
237
                                })
238
                                ->addColumn('created_at', function ($model) {
239
                                    $newDate = $this->getDate($model->created_at);
240
241
                                    return $newDate;
242
                                })
243
244
                            ->rawColumns(['checkbox', 'name', 'description',
245
                                'username', 'role', 'new', 'old', 'created_at', ])
246
                            ->make(true);
247
        } catch (\Exception $e) {
248
            Bugsnag::notifyException($e);
249
250
            return redirect()->back()->with('fails', $e->getMessage());
251
        }
252
    }
253
254
    public function getMails()
255
    {
256
        try {
257
            $email_log = \DB::table('email_log')->get();
258
259
            return\ DataTables::of($email_log)
260
             ->addColumn('checkbox', function ($model) {
261
                 return "<input type='checkbox' class='email' value=".$model->id.' name=select[] id=check>';
262
             })
263
                           ->addColumn('date', function ($model) {
264
                               return ucfirst($model->date);
265
                           })
266
                             ->addColumn('from', function ($model) {
267
                                 $from = Markdown::convertToHtml(ucfirst($model->from));
268
269
                                 return $from;
270
                             })
271
                              ->addColumn('to', function ($model) {
272
                                  $to = Markdown::convertToHtml(ucfirst($model->to));
273
274
                                  return $to;
275
                              })
276
                             ->addColumn('cc', function ($model) {
277
                                 $cc = '--';
278
279
                                 return $cc;
280
                             })
281
282
                               ->addColumn('subject', function ($model) {
283
                                   return ucfirst($model->subject);
284
                               })
285
286
                              ->addColumn('headers', function ($model) {
287
                                  $headers = Markdown::convertToHtml(ucfirst($model->headers));
288
289
                                  return $headers;
290
                              })
291
                              ->addColumn('status', function ($model) {
292
                                  return ucfirst($model->status);
293
                              })
294
295
                            ->rawColumns(['checkbox', 'date', 'from', 'to', 'cc',
296
                                'bcc', 'subject', 'headers', 'status', ])
297
                            ->make(true);
298
        } catch (\Exception $e) {
299
            Bugsnag::notifyException($e);
300
301
            return redirect()->back()->with('fails', $e->getMessage());
302
        }
303
    }
304
305
    public function destroy(Request $request)
306
    {
307
        try {
308
            $ids = $request->input('select');
309
            if (!empty($ids)) {
310
                foreach ($ids as $id) {
311
                    $activity = Activity::where('id', $id)->first();
312
                    if ($activity) {
313
                        $activity->delete();
314
                    } else {
315
                        echo "<div class='alert alert-danger alert-dismissable'>
316
                        <i class='fa fa-ban'></i>
317
318
                        <b>"./* @scrutinizer ignore-type */\Lang::get('message.alert').'!</b> '.
319
                        /* @scrutinizer ignore-type */     \Lang::get('message.failed').'
320
321
                        <button type=button class=close data-dismiss=alert aria-hidden=true>&times;</button>
322
                            './* @scrutinizer ignore-type */\Lang::get('message.no-record').'
323
                    </div>';
324
                        //echo \Lang::get('message.no-record') . '  [id=>' . $id . ']';
325
                    }
326
                }
327
                echo "<div class='alert alert-success alert-dismissable'>
328
                        <i class='fa fa-ban'></i>
329
                        <b>"./* @scrutinizer ignore-type */\Lang::get('message.alert').'!</b> '
330
                        ./* @scrutinizer ignore-type */\Lang::get('message.success').'
331
                        <button type=button class=close data-dismiss=alert aria-hidden=true>&times;</button>
332
                            './* @scrutinizer ignore-type */ \Lang::get('message.deleted-successfully').'
333
                    </div>';
334
            } else {
335
                echo "<div class='alert alert-danger alert-dismissable'>
336
                        <i class='fa fa-ban'></i>
337
                        <b>"./* @scrutinizer ignore-type */ \Lang::get('message.alert').
338
                        '!</b> './* @scrutinizer ignore-type */\Lang::get('message.failed').'
339
                        <button type=button class=close data-dismiss=alert aria-hidden=true>&times;</button>
340
                            './* @scrutinizer ignore-type */ \Lang::get('message.select-a-row').'
341
                    </div>';
342
                //echo \Lang::get('message.select-a-row');
343
            }
344
        } catch (\Exception $e) {
345
            echo "<div class='alert alert-danger alert-dismissable'>
346
                        <i class='fa fa-ban'></i>
347
                        <b>"./* @scrutinizer ignore-type */\Lang::get('message.alert').'!</b> '.
348
                        /* @scrutinizer ignore-type */\Lang::get('message.failed').'
349
                        <button type=button class=close data-dismiss=alert aria-hidden=true>&times;</button>
350
                            '.$e->getMessage().'
351
                    </div>';
352
        }
353
    }
354
355
    public function destroyEmail(Request $request)
356
    {
357
        try {
358
            $ids = $request->input('select');
359
            if (!empty($ids)) {
360
                foreach ($ids as $id) {
361
                    $email = \DB::table('email_log')->where('id', $id)->delete();
362
                    if ($email) {
363
                        // $email->delete();
364
                    } else {
365
                        echo "<div class='alert alert-danger alert-dismissable'>
366
                        <i class='fa fa-ban'></i>
367
368
                        <b>"./* @scrutinizer ignore-type */\Lang::get('message.alert').'!</b> '.
369
                        /* @scrutinizer ignore-type */     \Lang::get('message.failed').'
370
371
                        <button type=button class=close data-dismiss=alert aria-hidden=true>&times;</button>
372
                            './* @scrutinizer ignore-type */\Lang::get('message.no-record').'
373
                    </div>';
374
                        //echo \Lang::get('message.no-record') . '  [id=>' . $id . ']';
375
                    }
376
                }
377
                echo "<div class='alert alert-success alert-dismissable'>
378
                        <i class='fa fa-ban'></i>
379
                        <b>"./* @scrutinizer ignore-type */\Lang::get('message.alert').'!</b> '
380
                        ./* @scrutinizer ignore-type */\Lang::get('message.success').'
381
                        <button type=button class=close data-dismiss=alert aria-hidden=true>&times;</button>
382
                            './* @scrutinizer ignore-type */ \Lang::get('message.deleted-successfully').'
383
                    </div>';
384
            } else {
385
                echo "<div class='alert alert-danger alert-dismissable'>
386
                        <i class='fa fa-ban'></i>
387
                        <b>"./* @scrutinizer ignore-type */ \Lang::get('message.alert').
388
                        '!</b> './* @scrutinizer ignore-type */\Lang::get('message.failed').'
389
                        <button type=button class=close data-dismiss=alert aria-hidden=true>&times;</button>
390
                            './* @scrutinizer ignore-type */ \Lang::get('message.select-a-row').'
391
                    </div>';
392
                //echo \Lang::get('message.select-a-row');
393
            }
394
        } catch (\Exception $e) {
395
            echo "<div class='alert alert-danger alert-dismissable'>
396
                        <i class='fa fa-ban'></i>
397
                        <b>"./* @scrutinizer ignore-type */\Lang::get('message.alert').'!</b> '.
398
                        /* @scrutinizer ignore-type */\Lang::get('message.failed').'
399
                        <button type=button class=close data-dismiss=alert aria-hidden=true>&times;</button>
400
                            '.$e->getMessage().'
401
                    </div>';
402
        }
403
    }
404
405
    public function postSettingsError(Setting $settings, Request $request)
406
    {
407
        try {
408
            $setting = $settings->find(1);
409
            $setting->fill($request->input())->save();
410
411
            return redirect()->back()->with('success', \Lang::get('message.updated-successfully'));
412
        } catch (\Exception $ex) {
413
            return redirect()->back()->with('fails', $ex->getMessage());
414
        }
415
    }
416
}
417