Browse Source
Signed-off-by: Andrew Isherwood <andrew.isherwood@ptfs-europe.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>20.05.x
6 changed files with 135 additions and 0 deletions
@ -0,0 +1,54 @@ |
|||
package Koha::REST::V1::Illbackends; |
|||
|
|||
# This file is part of Koha. |
|||
# |
|||
# Koha is free software; you can redistribute it and/or modify it under the |
|||
# terms of the GNU General Public License as published by the Free Software |
|||
# Foundation; either version 3 of the License, or (at your option) any later |
|||
# version. |
|||
# |
|||
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY |
|||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR |
|||
# A PARTICULAR PURPOSE. See the GNU General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU General Public License along |
|||
# with Koha; if not, write to the Free Software Foundation, Inc., |
|||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
|||
|
|||
use Modern::Perl; |
|||
|
|||
use Mojo::Base 'Mojolicious::Controller'; |
|||
|
|||
use Koha::Illrequest::Config; |
|||
use Koha::Illrequests; |
|||
|
|||
=head1 NAME |
|||
|
|||
Koha::REST::V1::Illbackends |
|||
|
|||
=head2 Operations |
|||
|
|||
=head3 list |
|||
|
|||
Return a list of available ILL backends and its capabilities |
|||
|
|||
=cut |
|||
|
|||
sub list { |
|||
my $c = shift->openapi->valid_input; |
|||
|
|||
my $config = Koha::Illrequest::Config->new; |
|||
my $backends = $config->available_backends; |
|||
|
|||
my @data; |
|||
foreach $b ( @$backends ) { |
|||
my $backend = Koha::Illrequest->new->load_backend( $b ); |
|||
push @data, { |
|||
ill_backend_id => $b, |
|||
capabilities => $backend->capabilities, |
|||
}; |
|||
} |
|||
return $c->render( status => 200, openapi => \@data ); |
|||
} |
|||
|
|||
1; |
@ -0,0 +1,13 @@ |
|||
{ |
|||
"type": "object", |
|||
"properties": { |
|||
"ill_backend_id": { |
|||
"type": "string", |
|||
"description": "Internal ILL backend identifier" |
|||
}, |
|||
"capabilities": { |
|||
"type": "object", |
|||
"description": "List of capabilities" |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,6 @@ |
|||
{ |
|||
"type": "array", |
|||
"items": { |
|||
"$ref": "ill_backend.json" |
|||
} |
|||
} |
@ -0,0 +1,56 @@ |
|||
{ |
|||
"/ill_backends": { |
|||
"get": { |
|||
"x-mojo-to": "Illbackends#list", |
|||
"operationId": "listIllbackends", |
|||
"tags": ["illbackends"], |
|||
"parameters": [], |
|||
"produces": [ |
|||
"application/json" |
|||
], |
|||
"responses": { |
|||
"200": { |
|||
"description": "A list of ILL backends", |
|||
"schema": { |
|||
"$ref": "../definitions.json#/ill_backends" |
|||
} |
|||
}, |
|||
"401": { |
|||
"description": "Authentication required", |
|||
"schema": { |
|||
"$ref": "../definitions.json#/error" |
|||
} |
|||
}, |
|||
"403": { |
|||
"description": "Access forbidden", |
|||
"schema": { |
|||
"$ref": "../definitions.json#/error" |
|||
} |
|||
}, |
|||
"404": { |
|||
"description": "ILL backends not found", |
|||
"schema": { |
|||
"$ref": "../definitions.json#/error" |
|||
} |
|||
}, |
|||
"500": { |
|||
"description": "Internal server error", |
|||
"schema": { |
|||
"$ref": "../definitions.json#/error" |
|||
} |
|||
}, |
|||
"503": { |
|||
"description": "Under maintenance", |
|||
"schema": { |
|||
"$ref": "../definitions.json#/error" |
|||
} |
|||
} |
|||
}, |
|||
"x-koha-authorization": { |
|||
"permissions": { |
|||
"ill": "1" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue