示例#1
0
 private function getArticleValues(Request $request)
 {
     $values = self::getCommonValues($request);
     self::checkRecordsArguments($request);
     self::checkMetadataPrefix($request);
     $from = self::MIN_FROM;
     $from_temp = self::getQueryValue($request, 'from');
     if ($from_temp != null) {
         $from = $from_temp;
     }
     $until = self::MAX_UNTIL;
     $until_temp = self::getQueryValue($request, 'until');
     if ($until_temp != null) {
         if (strlen($until_temp) == 10) {
             // day granularity
             $until = $until_temp . 'T23:59:59Z';
         } else {
             $until = $until_temp;
         }
     }
     $values['completeListSize'] = ArticleDao::getContentCount($from, $until);
     $resumptionToken = self::getQueryValue($request, 'resumptionToken');
     if ($resumptionToken == null) {
         $resumptionToken = 0;
     }
     self::checkToken($resumptionToken, $values['completeListSize']);
     if ($values['completeListSize'] == 0) {
         throw new OaiError('0 records', self::ERROR_NO_RECORDS_MATCH);
     }
     $articles = ArticleDao::findContentCustomPaginated($resumptionToken, self::PAGE_SIZE, $from, $until);
     $articles = ArticleService::getEnrichedArticles($articles);
     foreach ($articles as $article) {
         self::enrichArticle($article);
     }
     $values['articles'] = $articles;
     $values['expirationDate'] = self::getDateAsString(time() + 86400 * 2);
     $values['cursor'] = $resumptionToken;
     if ($resumptionToken + self::PAGE_SIZE > $values['completeListSize']) {
         $values['resumptionToken'] = "";
     } else {
         $values['resumptionToken'] = $resumptionToken + self::PAGE_SIZE;
     }
     return $values;
 }