]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/YYYY.functions.url_verify.sql
Link checker: DB layer and similar changes for URL Verification
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / YYYY.functions.url_verify.sql
1 BEGIN;
2
3 CREATE OR REPLACE FUNCTION url_verify.parse_url (url_in TEXT) RETURNS url_verify.url AS $$
4
5 use Rose::URI;
6
7 my $url_in = shift;
8 my $url = Rose::URI->new($url_in);
9
10 my %parts = map { $_ => $url->$_ } qw/scheme username password host port path query fragment/;
11
12 $parts{full_url} = $url_in;
13 ($parts{domain} = $parts{host}) =~ s/^[^.]+\.//;
14 ($parts{tld} = $parts{domain}) =~ s/(?:[^.]+\.)+//;
15 ($parts{page} = $parts{path}) =~ s#(?:[^/]*/)+##;
16
17 return \%parts;
18
19 $$ LANGUAGE PLPERLU;
20
21 COMMIT;
22