From db446d1866ad2fe4c071857c3f1c37d67a70b813 Mon Sep 17 00:00:00 2001 From: Alexander Purr <purr@ub.uni-leipzig.de> Date: Tue, 19 Nov 2019 10:56:43 +0100 Subject: [PATCH] refs #16458 [fid] order hydrator adds more record parameters to DTO order * helper function object-to-array * use temporarily title as order label * bugfix access pages key --- module/fid/src/Hydrator/OrderHydrator.php | 27 +++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/module/fid/src/Hydrator/OrderHydrator.php b/module/fid/src/Hydrator/OrderHydrator.php index ead2d0df46b..06a347cbe47 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 -- GitLab