Bug 15126: Refactor spec file
[koha.git] / Koha / REST / V1 / Patrons.pm
1 package Koha::REST::V1::Patrons;
2
3 # This file is part of Koha.
4 #
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.
9 #
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.
13 #
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.
17
18 use Modern::Perl;
19
20 use Mojo::Base 'Mojolicious::Controller';
21
22 use C4::Auth qw( haspermission );
23 use Koha::Patrons;
24
25 sub list_patrons {
26     my ($c, $args, $cb) = @_;
27
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);
31     }
32
33     my $patrons = Koha::Patrons->search;
34
35     $c->$cb($patrons->unblessed, 200);
36 }
37
38 sub get_patron {
39     my ($c, $args, $cb) = @_;
40
41     my $user = $c->stash('koha.user');
42
43     unless ( $user
44         && ( $user->borrowernumber == $args->{borrowernumber}
45             || haspermission($user->userid, {borrowers => 1}) ) )
46     {
47         return $c->$cb({error => "You don't have the required permission"}, 403);
48     }
49
50     my $patron = Koha::Patrons->find($args->{borrowernumber});
51     unless ($patron) {
52         return $c->$cb({error => "Patron not found"}, 404);
53     }
54
55     return $c->$cb($patron->unblessed, 200);
56 }
57
58 1;