Fix the 404 handling

This commit is contained in:
swagg boi 2023-06-13 23:04:52 -04:00
parent d749b1a9c8
commit 08cc1ba31f
8 changed files with 29 additions and 15 deletions

View file

@ -1 +0,0 @@
daniel@graymember.5691

View file

@ -65,6 +65,7 @@ sub create($self) {
sub flag($self) { sub flag($self) {
my $remark_id = $self->param('remark_id'); my $remark_id = $self->param('remark_id');
my $valid_id = $self->remark->by_id($remark_id) ? 1 : 0;
my $v = $self->validation; my $v = $self->validation;
$v->optional(captcha => 'trim')->size(4, 4)->like(qr/flag/i); $v->optional(captcha => 'trim')->size(4, 4)->like(qr/flag/i);
@ -86,6 +87,11 @@ sub flag($self) {
$self->stash(status => 400) $self->stash(status => 400)
} }
$self->stash(status => 404, error => 'Remark not found 🤷')
unless $valid_id;
$self->stash(valid_id => $valid_id);
return $self->render; return $self->render;
} }

View file

@ -140,6 +140,7 @@ sub feed($self) {
sub bump($self) { sub bump($self) {
my $thread_id = $self->param('thread_id'); my $thread_id = $self->param('thread_id');
my $valid_id = $self->thread->by_id($thread_id) ? 1 : 0;
my $v = $self->validation; my $v = $self->validation;
$v->optional(captcha => 'trim')->size(4, 4)->like(qr/bump/i); $v->optional(captcha => 'trim')->size(4, 4)->like(qr/bump/i);
@ -157,11 +158,17 @@ sub bump($self) {
$self->stash(status => 400) $self->stash(status => 400)
} }
$self->stash(status => 404, error => 'Thread not found 🤷')
unless $valid_id;
$self->stash(valid_id => $valid_id);
return $self->render; return $self->render;
} }
sub flag($self) { sub flag($self) {
my $thread_id = $self->param('thread_id'); my $thread_id = $self->param('thread_id');
my $valid_id = $self->thread->by_id($thread_id) ? 1 : 0;
my $v = $self->validation; my $v = $self->validation;
$v->optional(captcha => 'trim')->size(4, 4)->like(qr/flag/i); $v->optional(captcha => 'trim')->size(4, 4)->like(qr/flag/i);
@ -181,7 +188,10 @@ sub flag($self) {
$self->stash(status => 400) $self->stash(status => 400)
} }
$self->stash(thread_id => $thread_id); $self->stash(status => 404, error => 'Thread not found 🤷')
unless $valid_id;
$self->stash(valid_id => $valid_id);
return $self->render; return $self->render;
} }

View file

@ -49,7 +49,8 @@ subtest 'Flagging remark', sub {
->text_like(h2 => qr/Remark #1/); ->text_like(h2 => qr/Remark #1/);
$t->get_ok('/remark/flag/1' )->status_is(200); $t->get_ok('/remark/flag/1' )->status_is(200);
$t->get_ok('/remark/flag/65536')->status_is(404); $t->get_ok('/remark/flag/65536')->status_is(404)
->text_like(p => qr/Remark not found/);
$t->get_ok('/remark/flag/1', form => {captcha => 'flag'})->status_is(200); $t->get_ok('/remark/flag/1', form => {captcha => 'flag'})->status_is(200);
$t->get_ok('/remark/flag/1', form => {captcha => 'aaaa'})->status_is(400); $t->get_ok('/remark/flag/1', form => {captcha => 'aaaa'})->status_is(400);
}; };

View file

@ -84,12 +84,9 @@ subtest 'Bumping thread', sub {
->element_exists('a[href*="bump"]') ->element_exists('a[href*="bump"]')
->text_like(h2 => qr/Thread #1/); ->text_like(h2 => qr/Thread #1/);
$t->get_ok('/thread/bump/1')->status_is(200)
->element_exists('p[class="stash-with-info"]')
->text_like(p => qr/Thread #1 has been bumped/);
$t->get_ok('/thread/bump/1' )->status_is(200); $t->get_ok('/thread/bump/1' )->status_is(200);
$t->get_ok('/thread/bump/65536')->status_is(404); $t->get_ok('/thread/bump/65536')->status_is(404)
->text_like(p => qr/Thread not found/);
$t->get_ok('/thread/bump/1', form => {captcha => 'bump'})->status_is(200); $t->get_ok('/thread/bump/1', form => {captcha => 'bump'})->status_is(200);
$t->get_ok('/thread/bump/1', form => {captcha => 'aaaa'})->status_is(400); $t->get_ok('/thread/bump/1', form => {captcha => 'aaaa'})->status_is(400);
}; };
@ -104,7 +101,8 @@ subtest 'Flagging thread', sub {
->text_like(h2 => qr/Thread #1/); ->text_like(h2 => qr/Thread #1/);
$t->get_ok('/thread/flag/1' )->status_is(200); $t->get_ok('/thread/flag/1' )->status_is(200);
$t->get_ok('/thread/flag/65536')->status_is(404); $t->get_ok('/thread/flag/65536')->status_is(404)
->text_like(p => qr/Thread not found/);
$t->get_ok('/thread/flag/1', form => {captcha => 'flag'})->status_is(200); $t->get_ok('/thread/flag/1', form => {captcha => 'flag'})->status_is(200);
$t->get_ok('/thread/flag/1', form => {captcha => 'aaaa'})->status_is(400); $t->get_ok('/thread/flag/1', form => {captcha => 'aaaa'})->status_is(400);
}; };

View file

@ -1,7 +1,7 @@
% layout 'default'; % layout 'default';
% title $remark_id ? "Flag Remark #$remark_id" : '?'; % title $valid_id ? "Flag Remark #$remark_id" : '?';
<h2 class="page-title"><%= title %></h2> <h2 class="page-title"><%= title %></h2>
<% if ($remark_id) { =%> <% if ($valid_id) { =%>
<form class="form-body"> <form class="form-body">
<div class="form-field"> <div class="form-field">
<% if (my $error = validation->error('captcha')) { =%> <% if (my $error = validation->error('captcha')) { =%>

View file

@ -1,7 +1,7 @@
% layout 'default'; % layout 'default';
% title $thread_id ? "Bump Thread #$thread_id" : '?'; % title $valid_id ? "Bump Thread #$thread_id" : '?';
<h2 class="page-title"><%= title %></h2> <h2 class="page-title"><%= title %></h2>
<% if ($thread_id) { =%> <% if ($valid_id) { =%>
<form class="form-body"> <form class="form-body">
<div class="form-field"> <div class="form-field">
<% if (my $error = validation->error('captcha')) { =%> <% if (my $error = validation->error('captcha')) { =%>

View file

@ -1,7 +1,7 @@
% layout 'default'; % layout 'default';
% title $thread_id ? "Flag Thread #$thread_id" : '?'; % title $valid_id ? "Flag Thread #$thread_id" : '?';
<h2 class="page-title"><%= title %></h2> <h2 class="page-title"><%= title %></h2>
<% if ($thread_id) { =%> <% if ($valid_id) { =%>
<form class="form-body"> <form class="form-body">
<div class="form-field"> <div class="form-field">
<% if (my $error = validation->error('captcha')) { =%> <% if (my $error = validation->error('captcha')) { =%>