AuthController::profileUpdate()   B
last analyzed

Complexity

Conditions 8
Paths 15

Size

Total Lines 62
Code Lines 34

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 8
eloc 34
nc 15
nop 1
dl 0
loc 62
rs 8.1315
c 0
b 0
f 0

How to fix   Long Method   

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\Api\V1;
4
5
use App\Http\Controllers\Controller;
6
use Illuminate\Http\Request;
7
use App\User;
8
9
class AuthController extends Controller
10
{
11
	private $model;
12
13
	/**
14
     * Create a new controller instance.
15
     *
16
     * @return void
17
     */
18
    public function __construct(User $model)
19
    {
20
        $this->model = $model;
21
    }
22
23
	public function profile(Request $request)
24
	{
25
		$user = $this->model->where('id', $request->user()->id)->first();
26
27
		if (!$user) {
28
			return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
29
		}
30
    
31
    //$user->image = asset($user->image);
32
33
		return response()->json(['status' => 'success', 'data' => $user]);
34
	}
35
  
36
  public function profileUpdate(Request $request)
37
	{
38
		$user = User::where('id', $request->user()->id)->first();
39
40
		if (!$user) {
41
			return response()->json(['status' => 'error', 'message' => 'Opss. Usuário não foi encontrado, favor verifique se esta logado.']);
42
		}
43
    
44
    $rules = [
45
        'name' => 'required',
46
    		'email' => 'required|email|unique:users,email,' . $request->user()->id,
47
    		'password' => 'required|string|min:6|confirmed',
48
    ];
49
50
		$validator = \Validator::make($request->all(), $rules);
51
52
    if ($validator->fails()) {
53
       return response()->json(['status' => 'error', 'errors' => $validator->errors()]);
54
    }
55
    
56
    /*
57
		if (!Hash::check($request->input('password_current'), $user->password)) { 
58
			return response()->json(['status' => 'error', 'message' => 'Opss. A senha atual informada está incorreta, favor verificar.']);	
59
		}
60
    */
61
62
		$data = [
63
			'name' => $request->input('name'),
64
      'email' => $request->input('email'),
65
      'password' => bcrypt($request->input('password')),
66
		];
67
    
68
    if ($request->image) {
69
      $time = time();
70
      $directoryPai = 'profiles';
71
      $directoryImage = $directoryPai . DIRECTORY_SEPARATOR . 'profile_id_' . $user->id;
72
      $ext = substr($request->image, 11, strpos($request->image, ';') - 11);
73
      $urlImage = $directoryImage . DIRECTORY_SEPARATOR . $time . '.' . $ext;
74
      $file = str_replace('data:image/' . $ext . ';base64,', '', $request->image);
75
      $file = base64_decode($file);
76
      
77
      if (!file_exists($directoryPai)) {
78
        mkdir($directoryPai, 0777);
79
      }
80
      if ($user->image) {
81
        $imgUser = str_replace(asset('/'), '', $user->image);
82
        if (file_exists($imgUser)) {
83
          unlink($imgUser);
84
        }
85
      }
86
      if (!file_exists($directoryImage)) {
87
        mkdir($directoryImage, 0777);
88
      }
89
      
90
      file_put_contents($urlImage, $file);
91
      $data['image'] = $urlImage;
92
    }
93
    
94
		$user->update($data);
95
    //$user->image = asset($user->image);
96
97
		return response()->json(['status' => 'success', 'data' => $user]);
98
	}
99
}