api/v0: add no_redirect option for randomized endpoints

This commit is contained in:
Lucas Gabriel Vuotto 2025-05-03 17:44:45 +00:00
parent 37802a2aa1
commit d44435ac73
2 changed files with 20 additions and 0 deletions

View file

@ -86,6 +86,14 @@ sub show ($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;
return $self->render(
@ -93,6 +101,8 @@ sub random ($self)
status => 404,
) if !defined($id);
return $self->render(json => $id) if $no_redirect;
return $self->redirect_to("show_media", media_id => $id);
}

View file

@ -47,6 +47,14 @@ sub show ($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;
return $self->render(
@ -54,6 +62,8 @@ sub random ($self)
status => 404,
) if !defined($id);
return $self->render(json => $id) if $no_redirect;
return $self->redirect_to(
$self->url_for("show_tag", tag_id_or_display => $id));
}