diff --git a/module/fid/src/Hydrator/OrderHydrator.php b/module/fid/src/Hydrator/OrderHydrator.php index ead2d0df46bc436b024fc004cad80c9bd91f4927..06a347cbe471d11290e2a6883f016560c7670071 100644 --- a/module/fid/src/Hydrator/OrderHydrator.php +++ b/module/fid/src/Hydrator/OrderHydrator.php @@ -27,24 +27,43 @@ class OrderHydrator extends AbstractHydrator { $object->setType($data['type']); $object->setUser($data['user']); + $pages = array_key_exists('pages',$data) ? $data['pages'] : null; + /* Collect needed record data */ - $recordId = $driver->tryMethod('getUniqueID'); + $id = $driver->tryMethod('getUniqueID'); $title = $driver->tryMethod('getTitle'); - $publicationDetails = (array) $driver->tryMethod('getPublicationDetails')[0]; + $publicationDetails = $this->toArray( $driver->tryMethod('getPublicationDetails')[0] ); $authors = $driver->tryMethod('getDeduplicatedAuthors'); + $primaryAuthor = $driver->tryMethod('getPrimaryAuthor'); + $secondaryAuthors = $driver->tryMethod('getSecondaryAuthors'); $isbn = $driver->tryMethod('getCleanISBN'); $issn = $driver->tryMethod('getCleanISSN'); + $languages = $driver->tryMethod('getLanguages'); + $price = $driver->tryMethod('getPrice'); + $record = compact( - 'recordId', + 'id', 'title', 'publicationDetails', 'authors', + 'primaryAuthor', + 'secondaryAuthors', 'issn', - 'isbn' + 'isbn', + 'languages', + 'price', + 'pages' ); $object->setData(compact('record')); + $object->setLabel($title); return; } + public function toArray ($object) : array { + $array = (array) $object; + $keys = str_replace( '*', '', array_keys( $array ) ); + return array_combine( $keys, array_values( $array ) ); + } + } \ No newline at end of file