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 Illuminate\Support\Facades\Log;
13
14class ProcessUserExtensionTrackActionsAsyncJob implements ShouldQueue
15{
16    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
17
18    public $tries = 5;
19
20    public function __construct(
21        public UserExtensionTrackActions $userExtensionTrackActions
22    ) {}
23
24    public function handle(): void
25    {
26        $service = new HeapAnalyticsService;
27
28        $eventName = $this->userExtensionTrackActions->event_name;
29        $identity = $this->userExtensionTrackActions->heap_analytics_id;
30
31        $properties = [
32            'extension_version' => $this->userExtensionTrackActions->extension_version,
33            'user_id' => $identity,
34            'identity' => $this->userExtensionTrackActions->user_id,
35            'browser' => $this->userExtensionTrackActions->browser,
36            'executed_at' => $this->userExtensionTrackActions->executed_at,
37            'domain' => $this->userExtensionTrackActions->domain,
38        ];
39
40        $result = $service->trackEvent($eventName, $properties, $this->userExtensionTrackActions->user_id);
41
42        Log::info('result', ['result' => $result]);
43    }
44
45    public function backoff()
46    {
47        return [10, 30, 60, 120, 300];
48    }
49}