Bug 35744: Implement +strings for GET /patrons/:patron_id
In order to retrieve the library's name and patron category's
description alongwith other patron's info.
Test plan:
Run the following command before and after this patch:
% curl -u koha:koha --request GET 'http://localhost:8081/api/v1/patrons/42' --header "Content-Type: application/json" --header "x-koha-embed: +strings" | jq
Notice that you now have _strings which contains the library's name and
patron category's description
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 5464d11099
)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
4c38b7140a
commit
f9be00361c
4 changed files with 55 additions and 1 deletions
|
@ -2467,6 +2467,27 @@ sub to_api_mapping {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
=head3 strings_map
|
||||||
|
|
||||||
|
Returns a map of column name to string representations including the string.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub strings_map {
|
||||||
|
my ( $self, $params ) = @_;
|
||||||
|
|
||||||
|
return {
|
||||||
|
library_id => {
|
||||||
|
str => $self->library->branchname,
|
||||||
|
type => 'library',
|
||||||
|
},
|
||||||
|
category_id => {
|
||||||
|
str => $self->category->description,
|
||||||
|
type => 'patron_category',
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
=head3 queue_notice
|
=head3 queue_notice
|
||||||
|
|
||||||
Koha::Patrons->queue_notice({ letter_params => $letter_params, message_name => 'DUE'});
|
Koha::Patrons->queue_notice({ letter_params => $letter_params, message_name => 'DUE'});
|
||||||
|
|
|
@ -378,6 +378,11 @@ properties:
|
||||||
type:
|
type:
|
||||||
- boolean
|
- boolean
|
||||||
description: Protected status of the patron
|
description: Protected status of the patron
|
||||||
|
_strings:
|
||||||
|
type:
|
||||||
|
- object
|
||||||
|
- "null"
|
||||||
|
description: A list of stringified coded values
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
required:
|
required:
|
||||||
- surname
|
- surname
|
||||||
|
|
|
@ -482,6 +482,7 @@
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
enum:
|
enum:
|
||||||
|
- +strings
|
||||||
- extended_attributes
|
- extended_attributes
|
||||||
collectionFormat: csv
|
collectionFormat: csv
|
||||||
produces:
|
produces:
|
||||||
|
|
|
@ -230,7 +230,7 @@ subtest 'list() tests' => sub {
|
||||||
|
|
||||||
subtest 'get() tests' => sub {
|
subtest 'get() tests' => sub {
|
||||||
|
|
||||||
plan tests => 3;
|
plan tests => 4;
|
||||||
|
|
||||||
$schema->storage->txn_begin;
|
$schema->storage->txn_begin;
|
||||||
unauthorized_access_tests('GET', -1, undef);
|
unauthorized_access_tests('GET', -1, undef);
|
||||||
|
@ -315,6 +315,33 @@ subtest 'get() tests' => sub {
|
||||||
|
|
||||||
$schema->storage->txn_rollback;
|
$schema->storage->txn_rollback;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
subtest '+strings' => sub {
|
||||||
|
|
||||||
|
plan tests => 4;
|
||||||
|
|
||||||
|
$schema->storage->txn_begin;
|
||||||
|
|
||||||
|
my $patron = $builder->build_object( { class => 'Koha::Patrons' } );
|
||||||
|
|
||||||
|
my $librarian = $builder->build_object(
|
||||||
|
{
|
||||||
|
class => 'Koha::Patrons',
|
||||||
|
value => { flags => 2**4 } # borrowers flag = 4
|
||||||
|
}
|
||||||
|
);
|
||||||
|
my $password = 'thePassword123';
|
||||||
|
$librarian->set_password( { password => $password, skip_validation => 1 } );
|
||||||
|
my $userid = $librarian->userid;
|
||||||
|
|
||||||
|
$t->get_ok( "//$userid:$password@/api/v1/patrons/" . $patron->id => { "x-koha-embed" => "+strings" } )
|
||||||
|
->status_is(200)
|
||||||
|
->json_has( '/_strings/library_id' => { str => $patron->library->branchname, type => 'library' } )
|
||||||
|
->json_has(
|
||||||
|
'/_strings/category_id' => { str => $patron->category->description, type => 'patron_category' } );
|
||||||
|
|
||||||
|
$schema->storage->txn_rollback;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
subtest 'add() tests' => sub {
|
subtest 'add() tests' => sub {
|
||||||
|
|
Loading…
Reference in a new issue