Browse Source

Adaptations VisitorBuilder #515

develop
Guillaume Bourgeois 2 years ago
parent
commit
70f67acfae
1 changed files with 29 additions and 24 deletions
  1. +29
    -24
      Builder/User/VisitorBuilder.php

+ 29
- 24
Builder/User/VisitorBuilder.php View File

@@ -16,20 +16,21 @@ class VisitorBuilder
protected EntityManagerInterface $entityManager;

public function __construct(
EntityManagerInterface $entityManager,
CookieComponent $cookieComponent,
ParameterBagInterface $parameterBag
) {
EntityManagerInterface $entityManager,
CookieComponent $cookieComponent,
ParameterBagInterface $parameterBag
)
{
$this->entityManager = $entityManager;
$this->cookieComponent = $cookieComponent;
$this->parameterBag = $parameterBag;
}

// addVisitor
public function create(string $cookie, string $ip)
public function create(string $cookieValue, string $ip)
{
$visitorFactory = new VisitorFactory();
$visitor = $visitorFactory->create($cookie, $ip);
$visitor = $visitorFactory->create($cookieValue, $ip);

$this->entityManager->create($visitor);
$this->entityManager->flush();
@@ -37,9 +38,11 @@ class VisitorBuilder

public function update(VisitorInterface $visitor)
{
$totalVisit = $visitor->getTotalVisit() + 1;
if($visitor->getLastAccess() < new \DateTime('-1 hour')) {
$totalVisit = $visitor->getTotalVisit() + 1;
$visitor->setTotalVisit($totalVisit);
}

$visitor->setTotalVisit($totalVisit);
$visitor->setLastAccess(new \DateTime());

$this->entityManager->update($visitor);
@@ -47,30 +50,32 @@ class VisitorBuilder
}

// setCookieVisitor
public function setCookie($response, $cookie): void
public function setCookie($response, $cookieValue): Cookie
{
$response->headers->setCookie(
Cookie::create(
$this->parameterBag->get('app.cookie_name_visitor'),
$this->cookieComponent->cryptCookie($cookie),
new \DateTime('+2 months'),
'/',
$this->cookieComponent->getCookieDomain()
)
$cookie = Cookie::create(
$this->parameterBag->get('app.cookie_name_visitor'),
$this->cookieComponent->cryptCookie($cookieValue),
new \DateTime('+2 months'),
'/',
$this->cookieComponent->getCookieDomain()
);

$response->headers->setCookie($cookie);

return $cookie;
}

// updateVisitorCookie
public function updateCookie($response): void
{
$response->headers->setCookie(
Cookie::create(
$this->parameterBag->get('app.cookie_name_visitor'),
$this->cookieComponent->cryptCookie($this->getVisitorCurrent()->getCookie()),
new \DateTime('+2 months'),
'/',
$this->cookieComponent->getCookieDomain()
)
Cookie::create(
$this->parameterBag->get('app.cookie_name_visitor'),
$this->cookieComponent->cryptCookie($this->getVisitorCurrent()->getCookie()),
new \DateTime('+2 months'),
'/',
$this->cookieComponent->getCookieDomain()
)
);
}


Loading…
Cancel
Save