api/v0: add no_redirect option for randomized endpoints
This commit is contained in:
parent
37802a2aa1
commit
d44435ac73
2 changed files with 20 additions and 0 deletions
|
@ -86,6 +86,14 @@ sub show ($self)
|
||||||
|
|
||||||
sub random ($self)
|
sub random ($self)
|
||||||
{
|
{
|
||||||
|
my $v = $self->validation;
|
||||||
|
|
||||||
|
my $no_redirect = $v->optional("no_redirect")->param;
|
||||||
|
return $self->render(
|
||||||
|
json => {error => "Invalid no_redirect."},
|
||||||
|
status => 400,
|
||||||
|
) if $v->has_error;
|
||||||
|
|
||||||
my $id = $self->media_model->random_id;
|
my $id = $self->media_model->random_id;
|
||||||
|
|
||||||
return $self->render(
|
return $self->render(
|
||||||
|
@ -93,6 +101,8 @@ sub random ($self)
|
||||||
status => 404,
|
status => 404,
|
||||||
) if !defined($id);
|
) if !defined($id);
|
||||||
|
|
||||||
|
return $self->render(json => $id) if $no_redirect;
|
||||||
|
|
||||||
return $self->redirect_to("show_media", media_id => $id);
|
return $self->redirect_to("show_media", media_id => $id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,14 @@ sub show ($self)
|
||||||
|
|
||||||
sub random ($self)
|
sub random ($self)
|
||||||
{
|
{
|
||||||
|
my $v = $self->validation;
|
||||||
|
|
||||||
|
my $no_redirect = $v->optional("no_redirect")->param;
|
||||||
|
return $self->render(
|
||||||
|
json => {error => "Invalid no_redirect."},
|
||||||
|
status => 400,
|
||||||
|
) if $v->has_error;
|
||||||
|
|
||||||
my $id = $self->tags_model->random_id;
|
my $id = $self->tags_model->random_id;
|
||||||
|
|
||||||
return $self->render(
|
return $self->render(
|
||||||
|
@ -54,6 +62,8 @@ sub random ($self)
|
||||||
status => 404,
|
status => 404,
|
||||||
) if !defined($id);
|
) if !defined($id);
|
||||||
|
|
||||||
|
return $self->render(json => $id) if $no_redirect;
|
||||||
|
|
||||||
return $self->redirect_to(
|
return $self->redirect_to(
|
||||||
$self->url_for("show_tag", tag_id_or_display => $id));
|
$self->url_for("show_tag", tag_id_or_display => $id));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue