Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
ProcessUserExtensionTrackActionsAsyncJob
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 handle
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
2
 backoff
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace App\Jobs;
4
5use App\Http\Models\UserExtensionTrackActions;
6use App\Http\Services\HeapAnalyticsService;
7use Illuminate\Bus\Queueable;
8use Illuminate\Contracts\Queue\ShouldQueue;
9use Illuminate\Foundation\Bus\Dispatchable;
10use Illuminate\Queue\InteractsWithQueue;
11use Illuminate\Queue\SerializesModels;
12use App\Http\Models\UserInfo;
13use App\Http\Services\StatisticsService;
14use App\Services\UserInfo\UserInfoService;
15use Illuminate\Support\Facades\Log;
16
17class ProcessUserExtensionTrackActionsAsyncJob implements ShouldQueue
18{
19    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
20
21    public $tries = 5;
22
23    public function __construct(
24        public UserExtensionTrackActions $userExtensionTrackActions
25    ) {}
26
27    public function handle(): void
28    {
29        $service = new HeapAnalyticsService();
30
31        $eventName = $this->userExtensionTrackActions->event_name;
32        $identity = $this->userExtensionTrackActions->heap_analytics_id;
33
34        $properties = [
35            'extension_version' => $this->userExtensionTrackActions->extension_version,
36            'user_id' =>  $identity,
37            'identity' => $this->userExtensionTrackActions->user_id,
38            'browser' => $this->userExtensionTrackActions->browser,
39            'executed_at' => $this->userExtensionTrackActions->executed_at,
40            'domain' => $this->userExtensionTrackActions->domain,
41        ];
42
43        $result = $service->trackEvent($eventName, $properties, $this->userExtensionTrackActions->user_id);
44
45        Log::info('result', ['result' => $result]);
46    }
47
48    public function backoff()
49    {
50        return [10, 30, 60, 120, 300];
51    }
52}