diff --git a/Lib/Search/BookSearch.php b/Lib/Search/BookSearch.php index 5117e5c..f161965 100644 --- a/Lib/Search/BookSearch.php +++ b/Lib/Search/BookSearch.php @@ -76,7 +76,7 @@ class BookSearch throw new WebException ("SolrError", $e->getMessage(), -700); } - $books = isset($results['response']['docs']) ? + $books = isset($results['response']['docs']) && $results['response']['docs'] ? array_map(function($o) { return (array) $o; }, $results['response']['docs']) : false; diff --git a/NetBiblio.php b/NetBiblio.php index 2554e4c..d2c7268 100644 --- a/NetBiblio.php +++ b/NetBiblio.php @@ -214,12 +214,12 @@ class NetBiblio extends WebService public function FindBooks($codes) { - $this->CheckSession(); + $codes = json_decode($codes); + $bs = new BookSearch(); + $bs->addQuery('code:('.implode(' OR ', $codes).')', null, false); + $results = $bs->getResults(0, count($codes)); + return $results['books'] ? $this->AddBookData($results['books']) : array(); - $codes = json_decode($codes, true); - $codes = array_map('intval', $codes); - $books = AudioBook::findBy('NoticeNr', $codes, true); - return array_values($this->AddBookData($books)); } private function GetFiles(array $ids) @@ -364,11 +364,10 @@ class NetBiblio extends WebService public function FindBook($code) { - $this->CheckSession(); - - $code = intval($code); - $book = AudioBook::findBy('NoticeNr', $code, true); - return $this->AddBookData($book); + $bs = new BookSearch(); + $bs->addQuery($code, 'code'); + $results = $bs->getResults(0, 1); + return $results['books'] ? reset($this->AddBookData($results['books'])) : null; } public function GetRandomBooks($number = 100, $seed = null) {