From deea22e7a6d90ab7f83f90c521a05bbd158fe24b 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 teh public api. Signed-off-by: David Nind --- 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 5b7541a36e..20b5465b53 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -1162,6 +1162,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 @@ -1177,7 +1192,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.30.2