use warnings;
use parent 'Catalyst::Controller';
+use DateTime::TimeZone;
+
=head1 NAME
NDWeb::Controller::JSRPC - Catalyst Controller
my $targets;;
if ($from){
- my ($timestamp) = $dbh->selectrow_array("SELECT MAX(modified)::timestamp AS modified FROM raid_targets");
+ my ($timestamp) = $dbh->selectrow_array(q{SELECT MAX(modified)::timestamp AS modified
+ FROM raid_targets WHERE raid = $1},undef,$raid->{id});
$c->stash(timestamp => $timestamp);
- $targets = $dbh->prepare(q{SELECT r.id,r.planet FROM raid_targets r
+ $targets = $dbh->prepare(q{SELECT r.id,r.pid FROM raid_targets r
WHERE r.raid = ? AND modified > ?
});
$targets->execute($raid->{id},$from);
}elsif($target){
- $targets = $dbh->prepare(q{SELECT r.id,r.planet FROM raid_targets r
+ $targets = $dbh->prepare(q{SELECT r.id,r.pid FROM raid_targets r
WHERE r.raid = $1 AND r.id = $2
});
$targets->execute($raid->{id},$target);
WHERE target = ? AND wave = ?
});
$query->execute($joinable,$target,$wave);
- $c->forward('/listTargets');
}
$c->stash(template => 'jsrpc/update.tt2');
$c->forward('/listTargets');
}
-sub access_denied : Local {
- my ($self, $c) = @_;
+sub tzcountries : Local {
+ my ($self, $c, $cat) = @_;
- $c->stash(template => 'jsrcp/access_denied.tt2');
+ my @countries = DateTime::TimeZone->names_in_category($cat);
+ $c->stash(tzcountries => \@countries);
+}
+
+sub access_denied : Private {
+ my ($self, $c) = @_;
+ $c->stash(template => 'jsrpc/access_denied.tt2');
+ $c->res->status(403);
}
sub assertTarget : Private {
if (scalar @{ $c->error } ){
if ($c->error->[0] =~ m/Can't call method "id" on an undefined value at/){
$c->stash->{template} = 'jsrpc/access_denied.tt2';
+ $c->res->status(403);
$c->clear_errors;
}elsif ($c->error->[0] =~ m/Missing roles: /){
$c->stash->{template} = 'jsrpc/access_denied.tt2';
+ $c->res->status(403);
$c->clear_errors;
}
}