Added logic for new tracking options

This commit is contained in:
Alejandro Celaya
2021-05-16 09:51:52 +02:00
parent d423d18249
commit f0dc32b6e5
7 changed files with 76 additions and 27 deletions

View File

@@ -6,6 +6,7 @@ namespace Shlinkio\Shlink\Core\Model;
use Psr\Http\Message\ServerRequestInterface;
use Shlinkio\Shlink\Common\Middleware\IpAddressMiddlewareFactory;
use Shlinkio\Shlink\Core\Options\TrackingOptions;
use function substr;
@@ -68,4 +69,16 @@ final class Visitor
{
return $this->visitedUrl;
}
public function normalizeForTrackingOptions(TrackingOptions $options): self
{
$instance = self::emptyInstance();
$instance->userAgent = $options->disableUaTracking() ? '' : $this->userAgent;
$instance->referer = $options->disableReferrerTracking() ? '' : $this->referer;
$instance->remoteAddress = $options->disableIpTracking() ? null : $this->remoteAddress;
$instance->visitedUrl = $this->visitedUrl;
return $instance;
}
}