Skip to content
This repository was archived by the owner on Jan 2, 2024. It is now read-only.

Commit cfa8efc

Browse files
committed
SSL option + refactor
1 parent c7967d6 commit cfa8efc

File tree

4 files changed

+40
-9
lines changed

4 files changed

+40
-9
lines changed

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
},
3131
"require-dev": {
3232
"orchestra/testbench": "^4.0 || ^5.0",
33+
"mockery/mockery": "^1.3",
3334
"phpunit/phpunit": "^8.3"
3435
},
3536
"autoload": {

config/config.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// set to null to disable
99
'http_uri' => 'gaid',
1010

11+
'use_ssl' => true,
12+
1113
'anonymize_ip' => true,
1214

1315
'send_user_id' => true,

src/ServiceProvider.php

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,37 +53,53 @@ public function register()
5353
);
5454

5555
$this->app->singleton(EventBroadcaster::class, BroadcastEvent::class);
56+
57+
$this->registerClientId();
58+
$this->registerAnalytics();
59+
$this->registerRoute();
60+
}
61+
62+
private function registerClientId()
63+
{
5664
$this->app->singleton(ClientIdRepostory::class, ClientIdSession::class);
5765

5866
$this->app->bind('analytics-event-tracking-client-id', function () {
59-
return app(ClientIdSession::class)->get();
67+
return $this->app->make(ClientIdSession::class)->get();
6068
});
6169

6270
$this->app->singleton(ClientIdSession::class, function () {
6371
return new ClientIdSession(
64-
app('session.store'),
72+
$this->app->make('session.store'),
6573
config('analytics-event-tracking.client_id_session_key')
6674
);
6775
});
76+
}
6877

78+
private function registerAnalytics()
79+
{
6980
$this->app->bind(Analytics::class, function () {
70-
return tap(new Analytics(true), function (Analytics $analytics) {
81+
return tap(new Analytics(config('analytics-event-tracking.use_ssl')), function (Analytics $analytics) {
82+
$analytics->setTrackingId(
83+
config('analytics-event-tracking.tracking_id')
84+
);
85+
7186
if (config('analytics-event-tracking.send_user_id') && Auth::check()) {
7287
$analytics->setUserId(Auth::id());
7388
}
7489

7590
if (config('analytics-event-tracking.anonymize_ip')) {
7691
$analytics->setAnonymizeIp(1);
7792
}
78-
79-
$analytics->setTrackingId(
80-
config('analytics-event-tracking.tracking_id')
81-
);
8293
});
8394
});
95+
}
8496

85-
if ($httpUri = config('analytics-event-tracking.http_uri')) {
86-
Route::post($httpUri, StoreClientIdInSession::class);
97+
private function registerRoute()
98+
{
99+
if (!$httpUri = config('analytics-event-tracking.http_uri')) {
100+
return;
87101
}
102+
103+
Route::post($httpUri, StoreClientIdInSession::class);
88104
}
89105
}

tests/ServiceProviderTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,18 @@ public function it_sets_the_tracking_id_from_the_configuration()
1414
$this->assertStringContainsString('tid=UA-11111111-11', app(Analytics::class)->getUrl());
1515
}
1616

17+
/** @test */
18+
public function it_can_disable_ssl()
19+
{
20+
config(['analytics-event-tracking.use_ssl' => true]);
21+
22+
$this->assertStringContainsString('https://', app(Analytics::class)->getUrl());
23+
24+
config(['analytics-event-tracking.use_ssl' => false]);
25+
26+
$this->assertStringContainsString('http://', app(Analytics::class)->getUrl());
27+
}
28+
1729
private function authenticateUser()
1830
{
1931
Auth::login(

0 commit comments

Comments
 (0)