Exemplo n.º 1
0
 public static function searchCrossRefDOI($doi)
 {
     $doi = preg_replace('!\\s+!', ' ', $doi);
     $url = "http://api.crossref.org/works/" . $doi;
     $apiRequest = Yii::app()->curl->run($url);
     if ($apiRequest->hasErrors()) {
         throw new CHttpException(500, 'Gagal menghubungi server CrossRef');
     } else {
         $apiResponse = CJSON::decode($apiRequest->getData());
         if ($apiResponse === null) {
             throw new CHttpException(404, "Tidak ditemukan hasil dari CrossRef");
         }
         $refType = $apiResponse['message']['type'];
         $ref = new Reference();
         switch ($refType) {
             case 'journal-article':
                 return $ref->createJournal($apiResponse['message']);
             case 'proceedings-article':
                 return $ref->createProceeding($apiResponse['message']);
             case 'book-chapter':
                 return $ref->createBookChapter($apiResponse['message']);
             case 'reference-entry':
                 return $ref->createBookChapter($apiResponse['message']);
             default:
                 throw new CHttpException(404, "Tidak ditemukan hasil dari CrossRef");
         }
     }
 }