2016-04-17 13:42:52 +02:00
|
|
|
<?php
|
2017-10-12 10:13:20 +02:00
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
2016-07-19 18:01:39 +02:00
|
|
|
namespace Shlinkio\Shlink\Core\Service;
|
2016-04-17 13:42:52 +02:00
|
|
|
|
2016-08-09 08:52:06 +02:00
|
|
|
use Psr\Http\Message\ServerRequestInterface;
|
2016-07-21 09:36:38 +02:00
|
|
|
use Shlinkio\Shlink\Common\Util\DateRange;
|
2016-07-19 18:01:39 +02:00
|
|
|
use Shlinkio\Shlink\Core\Entity\Visit;
|
2017-12-30 21:35:26 +01:00
|
|
|
use Shlinkio\Shlink\Core\Exception\InvalidArgumentException;
|
2016-06-12 21:51:06 +02:00
|
|
|
|
2016-04-17 13:42:52 +02:00
|
|
|
interface VisitsTrackerInterface
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Tracks a new visit to provided short code, using an array of data to look up information
|
|
|
|
|
*
|
|
|
|
|
* @param string $shortCode
|
2016-08-09 08:52:06 +02:00
|
|
|
* @param ServerRequestInterface $request
|
2016-04-17 13:42:52 +02:00
|
|
|
*/
|
2018-09-13 22:36:28 +02:00
|
|
|
public function track($shortCode, ServerRequestInterface $request): void;
|
2016-06-12 21:51:06 +02:00
|
|
|
|
|
|
|
|
/**
|
2016-07-21 09:36:38 +02:00
|
|
|
* Returns the visits on certain short code
|
2016-06-12 21:51:06 +02:00
|
|
|
*
|
2017-12-27 16:23:54 +01:00
|
|
|
* @param string $shortCode
|
2016-07-21 09:36:38 +02:00
|
|
|
* @param DateRange $dateRange
|
|
|
|
|
* @return Visit[]
|
2017-10-22 09:00:32 +02:00
|
|
|
* @throws InvalidArgumentException
|
2016-06-12 21:51:06 +02:00
|
|
|
*/
|
2017-12-27 16:23:54 +01:00
|
|
|
public function info(string $shortCode, DateRange $dateRange = null): array;
|
2016-04-17 13:42:52 +02:00
|
|
|
}
|