use base 'Mojolicious';
use Data::Dump qw(dump);
+use Storable;
+use Time::HiRes qw(time);
+
+
+sub save_tx {
+ my ($self,$tx) = @_;
+# warn "## before_dispatch req ",dump($tx->req->url, $tx->req->params);
+ my $parts = $tx->req->url->path->parts;
+ warn "# parts ",dump( $parts );
+ if ( $parts->[0] eq 'data' ) {
+ if ( my $params = $tx->req->params ) {
+
+ warn "# params ",dump($params);
+
+ my $time = time();
+ if ( my $time_travel = $params->param('time') ) {
+ warn "# time-travel to $time_travel from ", $tx->remote_address;
+ $time = $time_travel;
+ }
+
+ my $path = '/tmp/actions/';
+ mkdir $path unless -e $path;
+ $path .= sprintf '%.4f.%s', $time, join('.', @$parts);
+
+ store $params, $path;
+ warn "$path ", -s $path, " bytes\n";
+ }
+ }
+}
+
# This method will run once at server start
sub startup {
before_dispatch => sub {
my ($self, $c) = @_;
my $tx = $c->tx;
- # Do whatever you want with the transaction here
- if ( $tx->req->url->query ) {
- warn "# before_dispatch url ",dump($tx->req->url);
- }
+ save_tx( $self, $tx );
}
);
}
+
+
1;