示例#1
0
 private function getRecord(Request $request)
 {
     try {
         $query = self::getQueryValues($request);
         if (!array_key_exists('identifier', $query) || !array_key_exists('metadataprefix', $query)) {
             throw new OaiError('not enough parameters"', self::ERROR_BAD_ARGUMENT);
         }
         if ($query['metadataprefix'] != self::getCommonValues($request)['metadataPrefix']) {
             throw new OaiError("Incorrect metadataPrefix parameter", self::ERROR_BAD_ARGUMENT);
         }
         $articleId = self::getArticleId($query['identifier'], $request);
         $articles = ArticleDao::findContentById($articleId);
         $articles = ArticleService::getEnrichedArticles($articles);
         $article = DaoUtil::returnSingleElement($articles);
         self::enrichArticle($article);
         $values = self::getCommonValues($request);
         $values['article'] = $article;
         return Response::view('oai.record', $values)->header('Content-Type', 'application/xml');
     } catch (OaiError $e) {
         return self::getErrorPage($request, self::$ERROR_CODES[$e->getCode()], $e->getMessage());
     }
 }