This commit is contained in:
2026-08-22 23:59:41 -06:00
parent 84893662ca
commit a89b275313
23 changed files with 374 additions and 39 deletions

View File

@@ -6,6 +6,9 @@ package CW;
use Moo;
use Plack::Request;
use Try::Tiny;
use feature 'state';
use CW::Plack::Request;
use CW::Plack::Response;
@@ -47,11 +50,52 @@ sub app {
my $route = $match->{route};
my $pkg = $route->pkg;
my $action = $route->action;
$pkg->new( dbh => $self->dbh )->$action( $request, $response );
my %params = %$match;
delete $params{route};
try {
$pkg->new(
dbh => $self->dbh,
params => \%params,
request => $request,
response => $response
)->$action();
}
catch {
my $error = $_;
use DDP;
p $error;
state $show_errors = $self->environment ne 'prod';
if ( ref($error) && ref($error) eq 'HASH' && $error->{status} )
{
$response->status( $error->{status} );
$response->template(
"Error::" . $error->{status},
{
show_errors => $show_errors,
error => $error
}
);
}
else {
$response->status(500);
$response->template(
"Error::500",
{
show_errors => $show_errors,
error => $error
}
);
}
}
}
else {
$response->status(404);
$response->body("404 not found");
$response->template("Error::404");
}
return $response->finalize;