RegisterController::register()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 31
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 19
nc 2
nop 1
dl 0
loc 31
rs 9.6333
c 0
b 0
f 0
1
<?php
2
3
namespace App\Http\Controllers\Api\V1\Auth;
4
5
use App\Http\Controllers\Controller;
6
use Illuminate\Http\Request;
7
use Illuminate\Support\Facades\Route;
8
use App\Notifications\RegisterNotification;
9
use Illuminate\Support\Str;
10
use App\User;
11
12
class RegisterController extends Controller
13
{
14
	public function register(Request $request)
15
	{
16
		$rules = [
17
        	'name' => 'required',
18
    		'email' => 'required|email|unique:users,email',
19
    		'password' => 'required|string|min:6|confirmed',
20
    	];
21
22
    	$validator = \Validator::make($request->all(), $rules);
23
24
	    if ($validator->fails()) {
25
	       return response()->json(['status' => 'error', 'errors' => $validator->errors()], 422);
26
	    }
27
28
		$data = $request->all();
29
30
		$token = str_random(50);
31
		
32
		$user = new User;
33
		$user->name = $data['name'];
34
		$user->email = $data['email'];
35
		$user->password = bcrypt($data['password']);
36
    	$user->image = '/profiles/default.png';
37
    	$user->token = $token;
38
		$user->save();
39
40
		$url = config('app.url_frontend_react') . "/confirmation/{$token}";
41
42
		$user->notify(new RegisterNotification($user, $token, $url));
43
44
		return response()->json(['status' => 'success', 'message' => 'Conta criada com sucesso, verifique seu e-mail para ativar seu cadastro.']);
45
	}
46
47
	public function confirmation($token)
48
    {
49
        $user = User::where('token', $token)->first();
50
51
        if (!is_null($user)) {
52
            $user->status = 1;
53
            $user->token = '';
54
            $user->save();
55
56
            return response()->json(['status' => 'success', 'message' => 'Seu cadastro foi confirmado com sucesso, agora você já pode acessar o sistema com seu e-mail e senha.']);
57
        }
58
59
        return response()->json(['status' => 'error', 'message' => 'Opss. Link para validação de cadastro inexistente.']);
60
    }
61
}