/**
  * @param string $urlSuffixString
  * @return string
  * @throws GetRedirectUrlException
  */
 public function get($urlSuffixString)
 {
     $shortenedUrlSuffix = $this->shortenedUrlSuffixRepo->findBySuffix($urlSuffixString);
     if (null === $shortenedUrlSuffix) {
         throw new GetRedirectUrlException("Url does not exist");
     }
     $this->registerUrlCallService->register($shortenedUrlSuffix);
     return $this->urlEncoder->decode($shortenedUrlSuffix->getOriginalUrlEncodedLink());
 }
 /**
  * @param string $url
  * @return string
  */
 public function create($url)
 {
     $newUrlSuffix = $this->getShortened($url);
     $originalUrlEntity = $this->getOriginalUrlEntity($this->urlEncoder->encode($url));
     $shortenedUrlSuffixEntity = $this->shortenedUrlSuffixFactory->create($originalUrlEntity, $newUrlSuffix);
     $this->entityManager->persist($shortenedUrlSuffixEntity);
     $this->entityManager->flush();
     $shortenedUrl = $this->getShortenedUrlsService->getBySuffix($shortenedUrlSuffixEntity);
     return $shortenedUrl;
 }
 /**
  * @param ShortenedUrlSuffix $shortenedUrlSuffix
  * @param int                $totalExecutions
  * @param int                $totalRedirectsToSameContent
  * @return ShortenedUrl
  */
 public function create(ShortenedUrlSuffix $shortenedUrlSuffix, $totalExecutions, $totalRedirectsToSameContent)
 {
     $link = $this->localUrlAssembler->assemble($shortenedUrlSuffix->getSuffixString());
     $originalLink = $this->urlEncoder->decode($shortenedUrlSuffix->getOriginalUrlEncodedLink());
     return new ShortenedUrl($link, $originalLink, $shortenedUrlSuffix->getDateCreated(), $totalExecutions, $totalRedirectsToSameContent);
 }