| author | Vincent Tondellier <tonton+hg@team1664.org> |
| Sun, 14 Feb 2016 20:17:15 +0100 | |
| changeset 95 | fcf3a68002e6 |
| parent 88 | c82f5589db11 |
| child 108 | e4e5cfaf5814 |
| permissions | -rw-r--r-- |
|
78
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
1 |
package CrashTest; |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
2 |
use Mojo::Base 'Mojolicious'; |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
3 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
4 |
use CrashTest::Model::Storage; |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
5 |
use CrashTest::Model::StackFilter; |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
6 |
use CrashTest::Model::CrashReport; |
|
88
c82f5589db11
Add first cut of the crash grouping feature
Vincent Tondellier <tonton+hg@team1664.org>
parents:
79
diff
changeset
|
7 |
use CrashTest::Model::CrashGroup; |
|
78
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
8 |
use CrashTest::Model::CrashProcessor; |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
9 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
10 |
# This method will run once at server start |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
11 |
sub startup {
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
12 |
my $self = shift; |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
13 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
14 |
$self->secrets([ |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
15 |
'My secret passphrase here' |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
16 |
]); |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
17 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
18 |
# External plugins |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
19 |
$self->plugin('Config');
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
20 |
$self->plugin('bootstrap_pagination');
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
21 |
# Documentation browser under "/perldoc" |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
22 |
#$self->plugin('PODRenderer');
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
23 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
24 |
# Commands |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
25 |
push @{$self->commands->namespaces}, 'CrashTest::Command';
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
26 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
27 |
# Helpers |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
28 |
$self->plugin("CrashTest::Helper::DateTime");
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
29 |
$self->plugin("CrashTest::Helper::Backtrace");
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
30 |
$self->plugin("CrashTest::Helper::XmlEscape");
|
|
88
c82f5589db11
Add first cut of the crash grouping feature
Vincent Tondellier <tonton+hg@team1664.org>
parents:
79
diff
changeset
|
31 |
$self->plugin("CrashTest::Helper::Stats");
|
|
78
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
32 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
33 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
34 |
$self->helper(crash_reports => sub { state $crash_reports = CrashTest::Model::CrashReport->new (app => $self); });
|
|
88
c82f5589db11
Add first cut of the crash grouping feature
Vincent Tondellier <tonton+hg@team1664.org>
parents:
79
diff
changeset
|
35 |
$self->helper(crash_groups => sub { state $crash_groups = CrashTest::Model::CrashGroup->new (app => $self); });
|
|
78
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
36 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
37 |
$self->helper(crash_processor => sub { state $crash_processor = CrashTest::Model::CrashProcessor->new (app => $self, config => $self->config); });
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
38 |
$self->helper(stackfilter => sub { state $crash_reports = CrashTest::Model::StackFilter->new (app => $self, config => $self->config); });
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
39 |
$self->helper(storage => sub { state $storage = CrashTest::Model::Storage->new (app => $self, config => $self->config); });
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
40 |
|
|
79
4ae8bb6f8a96
Small config reorganization
Vincent Tondellier <tonton+hg@team1664.org>
parents:
78
diff
changeset
|
41 |
$self->plugin('Minion', $self->config->{Processor}->{JobQueue}->{Backend}->{Minion});
|
|
78
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
42 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
43 |
$self->storage->load_plugins(); |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
44 |
$self->crash_processor->load_plugins(); |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
45 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
46 |
# Router |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
47 |
my $r = $self->routes; |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
48 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
49 |
# Normal route to controller |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
50 |
$r->get('/')->to('crash_reports#index')->name('index');
|
|
88
c82f5589db11
Add first cut of the crash grouping feature
Vincent Tondellier <tonton+hg@team1664.org>
parents:
79
diff
changeset
|
51 |
$r->get('/reports')->to('crash_reports#index')->name('reports');
|
|
c82f5589db11
Add first cut of the crash grouping feature
Vincent Tondellier <tonton+hg@team1664.org>
parents:
79
diff
changeset
|
52 |
$r->get('/groups')->to('crash_groups#index')->name('groups');
|
|
c82f5589db11
Add first cut of the crash grouping feature
Vincent Tondellier <tonton+hg@team1664.org>
parents:
79
diff
changeset
|
53 |
$r->get('/groups/:uuid' => [ uuid => qr/[0-9a-fA-F-]+/ ])->to('crash_groups#show')->name('group');
|
|
c82f5589db11
Add first cut of the crash grouping feature
Vincent Tondellier <tonton+hg@team1664.org>
parents:
79
diff
changeset
|
54 |
$r->get('/report/:uuid' => [ uuid => qr/[0-9a-fA-F-]+/ ])->to('crash_reports#show')->name('report');
|
|
78
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
55 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
56 |
$r->post('/submit')->to('crash_inserter#insert');
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
57 |
} |
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
58 |
|
|
0ebef32c34af
Refactor everything
Vincent Tondellier <tonton+hg@team1664.org>
parents:
diff
changeset
|
59 |
1; |