Bug 13799: Add cookie-based authentication to REST API
[koha.git] / Koha / REST / V1 / Borrowers.pm
1 package Koha::REST::V1::Borrowers;
2
3 use Modern::Perl;
4
5 use Mojo::Base 'Mojolicious::Controller';
6
7 use C4::Auth qw( haspermission );
8 use Koha::Borrowers;
9
10 sub list_borrowers {
11     my ($c, $args, $cb) = @_;
12
13     my $user = $c->stash('koha.user');
14     unless ($user && haspermission($user->userid, {borrowers => 1})) {
15         return $c->$cb({error => "You don't have the required permission"}, 403);
16     }
17
18     my $borrowers = Koha::Borrowers->search;
19
20     $c->$cb($borrowers->unblessed, 200);
21 }
22
23 sub get_borrower {
24     my ($c, $args, $cb) = @_;
25
26     my $user = $c->stash('koha.user');
27
28     unless ( $user
29         && ( $user->borrowernumber == $args->{borrowernumber}
30             || haspermission($user->userid, {borrowers => 1}) ) )
31     {
32         return $c->$cb({error => "You don't have the required permission"}, 403);
33     }
34
35     my $borrower = Koha::Borrowers->find($args->{borrowernumber});
36     unless ($borrower) {
37         return $c->$cb({error => "Borrower not found"}, 404);
38     }
39
40     return $c->$cb($borrower->unblessed, 200);
41 }
42
43 1;