View | Details | Raw Unified | Return to bug 15126
Collapse All | Expand All

(-)a/Koha/REST/V1/Patron.pm (+58 lines)
Line 0 Link Here
1
package Koha::REST::V1::Patron;
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 {
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 {
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;
(-)a/Koha/REST/V1/Patrons.pm (-58 lines)
Lines 1-58 Link Here
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;
(-)a/api/v1/swagger.json (-3 lines)
Lines 16-22 Link Here
16
  "paths": {
16
  "paths": {
17
    "/patrons": {
17
    "/patrons": {
18
      "get": {
18
      "get": {
19
        "x-mojo-controller": "Koha::REST::V1::Patrons",
20
        "operationId": "listPatrons",
19
        "operationId": "listPatrons",
21
        "tags": ["patrons"],
20
        "tags": ["patrons"],
22
        "produces": [
21
        "produces": [
Lines 43-49 Link Here
43
    },
42
    },
44
    "/patrons/{borrowernumber}": {
43
    "/patrons/{borrowernumber}": {
45
      "get": {
44
      "get": {
46
        "x-mojo-controller": "Koha::REST::V1::Patrons",
47
        "operationId": "getPatron",
45
        "operationId": "getPatron",
48
        "tags": ["patrons"],
46
        "tags": ["patrons"],
49
        "parameters": [
47
        "parameters": [
50
- 

Return to bug 15126