public function testGetHashByUrl()
 {
     $url = 'http://www.zurmo.com';
     try {
         ShortUrl::getHashByUrl($url);
         $this->assertTrue(false);
     } catch (NotFoundException $exception) {
         $this->assertTrue(true);
     }
     $shortUrl = new ShortUrl();
     $shortUrl->hash = 'abcdefghij';
     $shortUrl->url = $url;
     $shortUrl->save();
     $hash = ShortUrl::getHashByUrl($url);
     $this->assertEquals('abcdefghij', $hash);
     ShortUrl::deleteAll();
 }
示例#2
0
 /**
  * shortens a valid url and returns a short url
  *
  * @param   string $pUrl
  * @return  string
  * @throws  ModelException
  */
 public static function shortenUrl($pUrl)
 {
     $lUrl = urldecode($pUrl);
     $lUrl = str_replace(" ", "+", $lUrl);
     if (!UrlUtils::isUrlValid($lUrl)) {
         throw new ModelException("invalid url");
     }
     if ($lShortUrl = self::getByUrl($lUrl)) {
         return $lShortUrl->getShortedUrl();
     } else {
         $lShortUrl = new ShortUrl();
         $lShortUrl->setUrl($lUrl);
         $lShortUrl->save();
         return $lShortUrl->getShortedUrl();
     }
 }
示例#3
0
 public function new_shorten_url($long_url = "")
 {
     if (!empty($long_url)) {
         App::import("Model", "ShortUrl");
         $model = new ShortUrl();
         $long_url_array = $model->find('first', array('conditions' => array('ShortUrl.long_url' => $long_url)));
         if ($long_url_array && count($long_url_array) > 0) {
             //$this->set('SHORT_URL', $long_url_array['ShortUrl']['short_url']);
             return $long_url_array['ShortUrl']['short_url'];
         }
         $apiKey = '926968577661';
         $postData = array('longUrl' => $long_url, 'key' => $apiKey);
         $jsonData = json_encode($postData);
         $curlObj = curl_init();
         curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
         curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
         curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
         curl_setopt($curlObj, CURLOPT_HEADER, 0);
         curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
         curl_setopt($curlObj, CURLOPT_POST, 1);
         curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);
         $response = curl_exec($curlObj);
         // Change the response json string to object
         $json = json_decode($response);
         curl_close($curlObj);
         if ($json->id) {
             $shortUrlArray = array();
             $shortUrlArray['ShortUrl']['short_url'] = $json->id;
             $shortUrlArray['ShortUrl']['long_url'] = $long_url;
             $model->save($shortUrlArray);
             //$this->set('SHORT_URL', $json->id);
             return $json->id;
         }
         //$this->set('SHORT_URL', $long_url);*/
         return $long_url;
     }
     return '';
 }