Completed
Push — master ( af1818...a36485 )
by PROSPER
03:36
created

AccountController::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use Illuminate\Http\Request;
6
7
use Auth;
8
use Hash;
9
use Cloudder;
10
use App\User;
11
use App\Http\Requests;
12
use App\Http\Controllers\Controller;
13
14
15
class AccountController extends Controller
16
{
17
    protected $user;
18
    protected $id;
19
20
    public function __construct()
21
    {
22
        $this->id = Auth::user()->id;
23
        $this->user = User::findOrFail($this->id);
24
    }
25
26
    public function getAccountPage()
27
    {
28
        $details = User::whereId($this->id)->first();
29
30
        return view('account.dashboard')->withAccount($details);
31
    }
32
33
    /**
34
     * Store a newly created resource in storage.
35
     *
36
     * @param  Request  $request
37
     * @return Response
38
     */
39
    public function updateProfile(Request $request)
40
    {
41
        $this->validate($request, [
42
            'email'     => 'required|email|min:3|unique:users,email,'. $this->id,
43
            'fullname'  => 'required|min:3'
44
        ]);
45
46
        $values = $request->all();
47
        $this->user->fill($values)->save();
48
49
        return redirect()->back()->with('info','Your Profile has been updated successfully');
50
    }
51
52
    public function updateAvatar(Request $request)
53
    {
54
        $this->validate($request, [
55
            'file_name'     => 'required|mimes:jpeg,bmp,png|between:1,7000',
56
        ]);
57
58
        $filename  = $request->file('file_name')->getRealPath();
59
60
        Cloudder::upload($filename, null);
61
        list($width, $height) = getimagesize($filename);
62
63
        $fileUrl = Cloudder::show(Cloudder::getPublicId(), ["width" => $width, "height" => $height]);
64
65
        $this->user->update(['avatar' => $fileUrl]);
66
67
        return redirect()->back()->with('info', 'Your Avatar has been updated Successfully');
68
    }
69
70
    public function changePassword(Request $request)
71
    {
72
        $this->validate($request, [
73
            'password' => 'required|min:6|confirmed',
74
        ]);
75
76
        $this->user->password = Hash::make($request->password);
77
        $this->user->save();
78
79
        return redirect()->back()->with('info', 'Password successfully updated');
80
    }
81
82
    public function redirectToConfirmDeletePage()
83
    {
84
        return view('account.confirm');
85
    }
86
87
    public function dontDeleteAccount()
88
    {
89
        return redirect('/account');
90
    }
91
92
    public function deleteAccount(Request $request)
93
    {
94
        $this->user->delete();
95
96
        $request->session()->flush();
97
98
        return redirect("/");
99
    }
100
}
101