use new batch mode to add files
This commit is contained in:
@@ -190,19 +190,19 @@ class NetBiblio extends WebService
|
||||
public function GetWishes()
|
||||
{
|
||||
$books = $this->getUser()->getWishes();
|
||||
return array_values(array_map(array($this, 'AddFiles'), $books));
|
||||
return array_values($this->AddFiles($books));
|
||||
}
|
||||
|
||||
public function GetCirculations()
|
||||
{
|
||||
$circulations = $this->getUser()->getCirculations();
|
||||
return array_values(array_map(array($this, 'AddFiles'), $circulations));
|
||||
return array_values($this->AddFiles($circulations));
|
||||
}
|
||||
|
||||
public function GetOldCirculations()
|
||||
{
|
||||
$circulations = $this->getUser()->getOldCirculations();
|
||||
return array_values(array_map(array($this, 'AddFiles'), $circulations));
|
||||
return array_values($this->AddFiles($circulations));
|
||||
}
|
||||
|
||||
public function AddWish($bookNr)
|
||||
@@ -222,7 +222,7 @@ class NetBiblio extends WebService
|
||||
$codes = json_decode($codes, true);
|
||||
$codes = array_map('intval', $codes);
|
||||
$books = AudioBook::findBy('NoticeNr', $codes, true);
|
||||
return array_values(array_map(array($this, 'AddFiles'), $books));
|
||||
return array_values($this->AddFiles($books));
|
||||
}
|
||||
|
||||
private function GetFiles(array $ids)
|
||||
@@ -247,16 +247,24 @@ class NetBiblio extends WebService
|
||||
return json_decode($json, true);
|
||||
}
|
||||
|
||||
private function AddFiles(array $book)
|
||||
private function AddFiles(array $books)
|
||||
{
|
||||
$files = $this->GetFiles(array($book['code']));
|
||||
|
||||
if (is_array($files) && isset($files[$book['code']])) {
|
||||
$book['files'] = $files[$book['code']];
|
||||
} else {
|
||||
$book['files'] = array();
|
||||
if(isset($books['code'])) {
|
||||
$result = $this->AddFiles(array($books));
|
||||
return reset($result);
|
||||
}
|
||||
return $book;
|
||||
|
||||
$ids = array_map(function($b) { return $b['code']; }, $books);
|
||||
$files = $this->GetFiles($ids);
|
||||
foreach($books as $k => $b) {
|
||||
if(isset($files[$b['code']])) {
|
||||
$books[$k]['files'] = $files[$b['code']];
|
||||
} else {
|
||||
// we need to have an empty array for mobile apps compatibility.
|
||||
$books[$k]['files'] = array();
|
||||
}
|
||||
}
|
||||
return $books;
|
||||
}
|
||||
|
||||
public function FindBook($code)
|
||||
@@ -283,7 +291,7 @@ class NetBiblio extends WebService
|
||||
$ids = Connection::execute($sql)->to_array();
|
||||
$ids = array_map(function($a) { return $a['NoticeId']; }, $ids);
|
||||
$books = AudioBook::findBy('NoticeId', $ids, true);
|
||||
return array_values(array_map(array($this, 'AddFiles'), $books));
|
||||
return array_values($this->AddFiles($books));
|
||||
}
|
||||
|
||||
public function Search($query, $start, $limit)
|
||||
@@ -376,8 +384,10 @@ class NetBiblio extends WebService
|
||||
'facets' => $results['facet_counts']['facet_fields'],
|
||||
);
|
||||
|
||||
foreach ($results['response']['docs'] as $doc) {
|
||||
$data[] = $this->AddFiles((array) $doc);
|
||||
if($results['response']['docs']) {
|
||||
$books = array_map(function($o) { return (array) $o; }, $results['response']['docs']);
|
||||
$books = $this->AddFiles($books);
|
||||
$data = array_merge($data, $books);
|
||||
}
|
||||
|
||||
return $data;
|
||||
@@ -431,7 +441,7 @@ class NetBiblio extends WebService
|
||||
|
||||
$ids = array_map(function($r) { return $r['id']; }, $results['response']['docs']);
|
||||
$books = AudioBook::findBy('NoticeID', $ids, true);
|
||||
$books = array_map(array($this, 'AddFiles'), $books);
|
||||
$books = $this->AddFiles($books);
|
||||
|
||||
$data = array();
|
||||
foreach($books as $b) {
|
||||
|
||||
Reference in New Issue
Block a user