5e91832f5440bf7d71e6e2dea2000b687dc61f1f
[MojoFacets.git] / lib / MojoFacets.pm
1 package MojoFacets;
2
3 use strict;
4 use warnings;
5
6 our $VERSION = '0.0001';
7
8 use base 'Mojolicious';
9
10 use Data::Dump qw(dump);
11 use Storable;
12 use Time::HiRes qw(time);
13
14
15 sub save_tx {
16         my ($self,$tx) = @_;
17         warn "# before_dispatch req ",dump($tx->req->url, $tx->req->params);
18         my $parts = $tx->req->url->path->parts;
19         warn "## parts ",dump( $parts );
20         if ( $parts->[0] eq 'data' ) {
21
22                 my $path = '/tmp/changes/';
23                 mkdir $path unless -e $path;
24                 $path .= sprintf '%.4f.%s', time(), join('.', @$parts);
25                 store $tx->req->params, $path;
26         #       $self->log->info( "$path ", -s $path, " bytes\n" );
27                 warn "$path ", -s $path, " bytes\n";
28
29         }
30 }
31
32
33 # This method will run once at server start
34 sub startup {
35     my $self = shift;
36
37     # Routes
38     my $r = $self->routes;
39
40     # Default route
41     $r->route('/:controller/:action/:id')->to('data#index', id => 1);
42
43 #       $self->plugin( 'request_timer' );
44
45         $self->plugins->add_hook(
46                         before_dispatch => sub {
47                                 my ($self, $c) = @_;
48                                 my $tx = $c->tx;
49                                 save_tx( $self, $tx );
50                         }
51         );
52 }
53
54
55
56 1;