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

(-)a/Koha/RDF.pm (+50 lines)
Line 0 Link Here
1
package Koha::RDF;
2
3
# Copyright 2017 Prosentient Systems
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 3 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use Modern::Perl;
21
use URI;
22
23
use C4::Context;
24
25
sub new {
26
    my ($class, $args) = @_;
27
    $args = {} unless defined $args;
28
    return bless ($args, $class);
29
}
30
31
sub mint_uri {
32
    my ($self,$type,$number) = @_;
33
    my $new_uri;
34
    my $preference = C4::Context->preference('OPACBaseURL');
35
    if ($preference){
36
        my $uri = URI->new($preference);
37
        if ( $uri && $uri->can('scheme') && $uri->scheme && ($uri->scheme eq 'http' || $uri->scheme eq 'https') ){
38
            if ($type && $number){
39
                if ($type eq 'biblio'){
40
                    #NOTE: This is arbitrary and based on default Apache configuration at the time of writing this module
41
                    $uri->path("bib/$number");
42
                    $new_uri = $uri;
43
                }
44
            }
45
        }
46
    }
47
    return $new_uri;
48
}
49
50
1;
(-)a/t/Koha/RDF.t (-1 / +33 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
# This file is part of Koha.
4
#
5
# Koha is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
9
#
10
# Koha is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18
use Modern::Perl;
19
use Test::More tests => 3;
20
21
use t::lib::Mocks;
22
23
use_ok("Koha::RDF");
24
25
my $rdf = Koha::RDF->new;
26
27
t::lib::Mocks::mock_preference('OPACBaseURL', 'http://koha-community.org');
28
my $well_formed_uri = $rdf->mint_uri('biblio',1);
29
is($well_formed_uri,'http://koha-community.org/bib/1','Successfully minted a RDF URI');
30
31
t::lib::Mocks::mock_preference('OPACBaseURL', 'koha-community.org');
32
my $malformed_uri = $rdf->mint_uri('biblio',2);
33
is($malformed_uri,undef,"Didn't mint URI due to missing URI scheme");

Return to bug 18586