File Coverage: lib/Yukki/Web/Controller/Redirect.pm

# File Coverage

File: | lib/Yukki/Web/Controller/Redirect.pm
Coverage: | 96.3%

line | stmt | bran | cond | sub | pod | time | code
--- | --- | --- | --- | --- | --- | --- | ---
1 |  |  |  |  |  |  | package Yukki::Web::Controller::Redirect;
2 |
3 | 1 1 |  |  | 1 |  | 477 2 | use v5.24;
4 | 1 1 1 |  |  | 1 |  | 3 2 5 | use utf8;
5 | 1 1 1 |  |  | 1 |  | 11 2 4 | use Moo;
6 |
7 | 1 1 1 |  |  | 1 |  | 1233 2 6 | use Yukki::Error qw( http_throw );
8 |
9 | 1 1 1 |  |  | 1 |  | 215 2 5 | use namespace::clean;
10 |
11 |  |  |  |  |  |  | # ABSTRACT: Simple controller for handling internal redirects
12 |
13 - 23 |  |
    =head1 DESCRIPTION

    Simple controller for handling internal redirects.

    =head1 METHODS

    =head2 fire

    When fired, performs the requested redirect.

    =cut
24 |
25 |  |  |  |  |  |  | sub fire {
26 | 1 |  |  | 1 | 1 | 2 | my ($self, $ctx) = @_;
27 |
28 | 1 |  |  |  |  | 14 | my $redirect = $ctx->request->path_parameters->{redirect};
29 |
30 | 1 | 50 |  |  |  | 22 | http_throw("no redirect URL named") unless $redirect;
31 |
32 | 1 |  |  |  |  | 7 | http_throw("Go to $redirect.", {
33 |  |  |  |  |  |  | status => 'MovedPermanently',
34 |  |  |  |  |  |  | location => $redirect,
35 |  |  |  |  |  |  | });
36 |  |  |  |  |  |  | }
37 |
38 |  |  |  |  |  |  | 1;