Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 27
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
HeapAnalyticsService
0.00% covered (danger)
0.00%
0 / 27
0.00% covered (danger)
0.00%
0 / 3
56
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 trackEvent
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
12
 addUserProperties
0.00% covered (danger)
0.00%
0 / 12
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace App\Http\Services;
4
5use GuzzleHttp\Client;
6use GuzzleHttp\Exception\RequestException;
7
8class HeapAnalyticsService
9{
10    protected $heapApiKey;
11
12    protected $client;
13
14    public function __construct()
15    {
16        $this->heapApiKey = env('HEAP_API_KEY') ?? 3450027184;
17        $this->client = new Client(['base_uri' => 'https://heapanalytics.com/api/']);
18    }
19
20    public function trackEvent($eventName, $properties = [], $identity = null)
21    {
22        try {
23            $response = $this->client->post('track', [
24                'json' => [
25                    'app_id' => $this->heapApiKey,
26                    'event' => $eventName,
27                    'identity' => $identity,
28                    'properties' => $properties,
29                ],
30            ]);
31
32            return json_decode($response->getBody(), true);
33        } catch (RequestException $e) {
34            if ($e->hasResponse()) {
35                // Log de erro ou exceção
36                \Log::error('Heap Analytics Error: '.$e->getResponse()->getBody()->getContents());
37            }
38
39            return false;
40        }
41    }
42
43    public function addUserProperties($identity, $properties)
44    {
45        try {
46            $response = $this->client->post('add_user_properties', [
47                'json' => [
48                    'app_id' => $this->heapApiKey,
49                    'identity' => $identity,
50                    'properties' => $properties,
51                ],
52            ]);
53
54            return json_decode($response->getBody(), true);
55        } catch (RequestException $e) {
56            if ($e->hasResponse()) {
57                \Log::error('Heap Analytics Add User Properties Error: '.$e->getResponse()->getBody()->getContents());
58            }
59
60            return false;
61        }
62    }
63}