Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
80.00% covered (warning)
80.00%
8 / 10
80.00% covered (warning)
80.00%
4 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
ProcessUserInfoAsyncJob
80.00% covered (warning)
80.00%
8 / 10
80.00% covered (warning)
80.00%
4 / 5
7.39
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 handle
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
3
 backoff
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 created
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 updated
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace App\Jobs;
4
5use App\Http\Models\UserInfo;
6use App\Http\Services\StatisticsService;
7use App\Services\UserInfo\UserInfoService;
8use Illuminate\Bus\Queueable;
9use Illuminate\Contracts\Queue\ShouldQueue;
10use Illuminate\Foundation\Bus\Dispatchable;
11use Illuminate\Queue\InteractsWithQueue;
12use Illuminate\Queue\SerializesModels;
13
14class ProcessUserInfoAsyncJob implements ShouldQueue
15{
16    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
17
18    public $tries = 5;
19
20    public function __construct(
21        public UserInfo $user,
22        public string $action
23    ) {}
24
25    public function handle(): void
26    {
27        if ($this->action === 'created') {
28            $this->created($this->user);
29        } elseif ($this->action === 'updated') {
30            $this->created($this->user);
31        }
32    }
33
34    public function backoff()
35    {
36        return [10, 30, 60, 120, 300];
37    }
38
39    private function created(UserInfo $user): void
40    {
41        $subscriptionService = new UserInfoService(new StatisticsService);
42
43        $subscriptionService->created($user);
44    }
45
46    private function updated(UserInfo $user): void
47    {
48        $subscriptionService = new UserInfoService(new StatisticsService);
49
50        $subscriptionService->updated($user);
51    }
52}