Completed
Pull Request — master (#27)
by Karl
05:54
created

UsersController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 9

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 9
dl 0
loc 52
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 10 1
A delete() 0 8 1
A premium() 0 4 1
A postPremium() 0 10 1
1
<?php namespace JobApis\JobsToMail\Http\Controllers;
2
3
use Illuminate\Foundation\Bus\DispatchesJobs;
4
use Illuminate\Http\Request;
5
use Illuminate\Routing\Controller as BaseController;
6
use Illuminate\Foundation\Validation\ValidatesRequests;
7
use JobApis\JobsToMail\Http\Requests\CreateUser;
8
use JobApis\JobsToMail\Http\Requests\PremiumUser;
9
use JobApis\JobsToMail\Jobs\CreateUserAndSearch;
10
use JobApis\JobsToMail\Jobs\DeleteUser;
11
use JobApis\JobsToMail\Jobs\Users\PremiumUserSignup;
12
13
class UsersController extends BaseController
14
{
15
    use DispatchesJobs, ValidatesRequests;
16
17
    /**
18
     * Create new User.
19
     */
20
    public function create(CreateUser $request)
21
    {
22
        $data = $request->only(array_keys($request->rules()));
23
24
        $message = $this->dispatchNow(new CreateUserAndSearch($data));
25
26
        $request->session()->flash($message->type, $message->message);
27
28
        return redirect('/');
29
    }
30
31
    /**
32
     * Delete a user account (unsubscribe from all searches)
33
     */
34
    public function delete(Request $request, $userId)
35
    {
36
        $message = $this->dispatchNow(new DeleteUser($userId));
37
38
        $request->session()->flash($message->type, $message->message);
39
40
        return redirect('/');
41
    }
42
43
    /**
44
     * Show premium signup form
45
     */
46
    public function premium()
47
    {
48
        return view('users.premium');
49
    }
50
51
    /**
52
     * Post premium signup form
53
     */
54
    public function postPremium(PremiumUser $request)
55
    {
56
        $data = $request->only(array_keys($request->rules()));
57
58
        $message = $this->dispatchNow(new PremiumUserSignup($data));
59
60
        $request->session()->flash($message->type, $message->message);
61
62
        return redirect('/premium');
63
    }
64
}
65