From 598eb395f4554c96a0af830a2ec211386f2f2718 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 24 Jan 2023 15:00:03 +0000 Subject: [PATCH] Bug 32711: Add 'public_read_list' appropriately We're exposing biblio (and thus biblioitem) to the public API now and as such we need to explisitely list which fields to include in the response when called on the public api. Signed-off-by: Silvia Meakins Signed-off-by: Kyle M Hall --- Koha/Biblio.pm | 17 ++++++++++++++++- Koha/Biblioitem.pm | 21 ++++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm index 50d60c8a69..587eb5af00 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -1218,6 +1218,21 @@ sub get_marc_authors { return [@first_authors, @other_authors]; } +=head3 public_read_list + +This method returns the list of publicly readable database fields for both API and UI output purposes + +=cut + +sub public_read_list { + return [ + 'biblionumber', 'frameworkcode', 'author', + 'title', 'medium', 'subtitle', + 'part_number', 'part_name', 'unititle', + 'notes', 'serial', 'seriestitle', + 'copyrightdate', 'abstract' + ]; +} =head3 to_api @@ -1233,7 +1248,7 @@ sub to_api { my ($self, $args) = @_; my $response = $self->SUPER::to_api( $args ); - my $biblioitem = $self->biblioitem->to_api; + my $biblioitem = $self->biblioitem->to_api( $args ); return { %$response, %$biblioitem }; } diff --git a/Koha/Biblioitem.pm b/Koha/Biblioitem.pm index eec0cdc637..9cc3a05ca2 100644 --- a/Koha/Biblioitem.pm +++ b/Koha/Biblioitem.pm @@ -30,6 +30,26 @@ Koha::Biblioitem - Koha Biblioitem Object class =head2 Class methods +=head3 public_read_list + +This method returns the list of publicly readable database fields for both API and UI output purposes + +=cut + +sub public_read_list { + return [ + 'volume', 'number', 'isbn', + 'issn', 'ean', 'publicationyear', + 'publishercode', 'volumedate', 'columedesc', + 'collectiontitle', 'collectionissn', 'collectionvolume', + 'editionstatement', 'editionresponsibility', 'pages', + 'place', 'lccn', 'url', + 'cn_source', 'cn_class', 'cn)item', + 'cn_suffix', 'cn_sort', 'agerestriction', + 'totalissues' + ]; +} + =head3 to_api_mapping This method returns the mapping for representing a Koha::Biblioitem object @@ -57,7 +77,6 @@ sub to_api_mapping { totalissues => 'serial_total_issues', volumedate => 'volume_date', volumedesc => 'volume_description', - }; } -- 2.40.1