Bug 15126: Refactor spec file
[koha.git] / Koha / REST / V1 / Patrons.pm
blob426145ffcd767ad6a225f02715883b2929c56fcf
1 package Koha::REST::V1::Patrons;
3 # This file is part of Koha.
5 # Koha is free software; you can redistribute it and/or modify it under the
6 # terms of the GNU General Public License as published by the Free Software
7 # Foundation; either version 3 of the License, or (at your option) any later
8 # version.
10 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License along
15 # with Koha; if not, write to the Free Software Foundation, Inc.,
16 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 use Modern::Perl;
20 use Mojo::Base 'Mojolicious::Controller';
22 use C4::Auth qw( haspermission );
23 use Koha::Patrons;
25 sub list_patrons {
26 my ($c, $args, $cb) = @_;
28 my $user = $c->stash('koha.user');
29 unless ($user && haspermission($user->userid, {borrowers => 1})) {
30 return $c->$cb({error => "You don't have the required permission"}, 403);
33 my $patrons = Koha::Patrons->search;
35 $c->$cb($patrons->unblessed, 200);
38 sub get_patron {
39 my ($c, $args, $cb) = @_;
41 my $user = $c->stash('koha.user');
43 unless ( $user
44 && ( $user->borrowernumber == $args->{borrowernumber}
45 || haspermission($user->userid, {borrowers => 1}) ) )
47 return $c->$cb({error => "You don't have the required permission"}, 403);
50 my $patron = Koha::Patrons->find($args->{borrowernumber});
51 unless ($patron) {
52 return $c->$cb({error => "Patron not found"}, 404);
55 return $c->$cb($patron->unblessed, 200);