Purge affected pages on insert/update/delete
authorMarius Gavrilescu <marius@ieval.ro>
Sat, 20 Dec 2014 14:41:39 +0000 (16:41 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Sat, 20 Dec 2014 14:57:42 +0000 (16:57 +0200)
Makefile.PL
lib/Gruntmaster/Data.pm
lib/Gruntmaster/Data/Result/Contest.pm
lib/Gruntmaster/Data/Result/ContestProblem.pm
lib/Gruntmaster/Data/Result/ContestStatus.pm
lib/Gruntmaster/Data/Result/Job.pm
lib/Gruntmaster/Data/Result/Open.pm
lib/Gruntmaster/Data/Result/Problem.pm
lib/Gruntmaster/Data/Result/ProblemStatus.pm
lib/Gruntmaster/Data/Result/User.pm

index 6d1dc29bebfd877454331ba44dbb79f91fca2359..86e6c32b75e7de05d398b2c166dc698e984023b9 100644 (file)
@@ -18,6 +18,7 @@ WriteMakefile(
 
                   Authen::Passphrase 0
                   Authen::Passphrase::BlowfishCrypt 0
+                  Class::Method::Modifiers 0
                   Date::Parse 0
                   DBIx::Class 0
                   File::Slurp 0
index 6de2fa2584338ec45aafef89365323b83d890b12..61a8f4e43cd6d42b69bc0610e4983fe249e4cafb 100644 (file)
@@ -17,7 +17,7 @@ __PACKAGE__->load_namespaces;
 
 use parent qw/Exporter/;
 our $VERSION = '5999.000_012';
-our @EXPORT = qw/purge/;
+our @EXPORT = qw/purge/; ## no critic (ProhibitAutomaticExportation)
 
 use Lingua::EN::Inflect qw/PL_N/;
 use JSON::MaybeXS qw/decode_json/;
@@ -186,8 +186,9 @@ sub update_status {
 my @PURGE_HOSTS = exists $ENV{PURGE_HOSTS} ? split ' ', $ENV{PURGE_HOSTS} : ();
 my $ht = HTTP::Tiny->new;
 
-sub purge { $ht->request(PURGE => "http://$_$_[0]") for @PURGE_HOSTS }
-
+sub purge {
+       $ht->request(PURGE => "http://$_$_[0]") for @PURGE_HOSTS;
+}
 
 1;
 
index e7b72259d7b10fc05c3736a7200347f4fd3405ea..a82bc0f2a4fdb85ffc71b9924ea79dec84b536d2 100644 (file)
@@ -171,8 +171,15 @@ __PACKAGE__->many_to_many("problems", "contest_problems", "problem");
 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:54:00
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:IxxZqQwKisBwDabCNUD55Q
 
+use Class::Method::Modifiers qw/after/;
 use List::Util qw/sum/;
 
+after qw/insert update delete/ => sub {
+       my ($self) = @_;
+       Gruntmaster::Data::purge '/ct/';
+       Gruntmaster::Data::purge '/ct/' . $self->id;
+};
+
 sub is_pending {
        my ($self, $time) = @_;
        $self->start > ($time // time)
index 4ae5e4b51893e531ce9e4bc62ec3dcb387391304..fd720add20ca7650dd5cb7521543424f0c4e4b5d 100644 (file)
@@ -94,9 +94,17 @@ __PACKAGE__->belongs_to(
 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:44:22
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dTFBC3ZKB2T9SCiyQxxe2w
 
+use Class::Method::Modifiers qw/after/;
+
 sub rawcontest { shift->get_column('contest') }
 sub rawproblem { shift->get_column('problem') }
 
+after qw/insert update delete/ => sub {
+       my ($self) = @_;
+       Gruntmaster::Data::purge '/pb/';
+       Gruntmaster::Data::purge '/pb/' . $self->rawproblem;
+};
+
 1;
 
 __END__
index 0815e988be356da7416809f263be78d4ed917ac5..d4ed8fe4d07d7707de43f5c2f3226deb643ab5f6 100644 (file)
@@ -108,6 +108,14 @@ __PACKAGE__->belongs_to(
 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:44:22
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:IkY4FNON0SrxrP8oNOXoHg
 
+use Class::Method::Modifiers qw/after/;
+
 sub rawowner { shift->get_column('owner') }
 
+after qw/insert update delete/ => sub {
+       my ($self) = @_;
+       Gruntmaster::Data::purge '/us/';
+       Gruntmaster::Data::purge '/us/' . $self->rawowner;
+};
+
 1;
index dfb375e7a0a0e40786a65b4213595b3349c1bf96..39d44bd81716ab02d910dceecfed6f6f9941ec84 100644 (file)
@@ -236,6 +236,8 @@ __PACKAGE__->has_many(
 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:54:00
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hEAVL5heV13+nalSmgr0WA
 
+use Class::Method::Modifiers qw/after/;
+
 sub rawcontest { shift->get_column('contest') }
 sub rawowner { shift->get_column('owner') }
 sub rawproblem { shift->get_column('problem') }
@@ -244,6 +246,15 @@ sub rerun {
        shift->update({daemon => undef, result => -2, result_text => undef});
 }
 
+after qw/insert update delete/ => sub {
+       my ($self) = @_;
+       Gruntmaster::Data::purge '/us/';
+       Gruntmaster::Data::purge '/us/' . $self->rawowner;
+       Gruntmaster::Data::purge '/st/' . $self->rawcontest if $self->rawcontest;
+       Gruntmaster::Data::purge '/log/';
+       Gruntmaster::Data::purge '/log/' . $self->id;
+};
+
 1;
 
 __END__
index 495df192462cf73800040a1cb7209afd595de125..e5c45e251b78ac4a66e09954112aa2bff5261518 100644 (file)
@@ -130,9 +130,17 @@ __PACKAGE__->belongs_to(
 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:44:22
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:jAao0vjOW87mO37ZQhm4Cw
 
+use Class::Method::Modifiers qw/after/;
+
+sub rawcontest { shift->get_column('contest') }
 sub rawowner { shift->get_column('owner') }
 sub rawproblem { shift->get_column('problem') }
 
+after qw/insert update delete/ => sub {
+       my ($self) = @_;
+       Gruntmaster::Data::purge '/st/' . $self->rawcontest;
+};
+
 1;
 
 __END__
index 34c9d876571618c2c04c7cb170473b5249e184e2..fe5523d62ced72ae2b9fa3316a63244eeffdacfe 100644 (file)
@@ -314,6 +314,14 @@ __PACKAGE__->many_to_many("contests", "contest_problems", "contest");
 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:54:00
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QZHyWOWaPmTm/EQ5M22CGA
 
+use Class::Method::Modifiers qw/after/;
+
+after qw/insert update delete/ => sub {
+       my ($self) = @_;
+       Gruntmaster::Data::purge '/pb/';
+       Gruntmaster::Data::purge '/pb/' . $self->id;
+};
+
 sub is_private {
        my ($self, $time) = @_;
        return 1 if $self->private;
index d46de2be19cae73c2f9d9862be3e01672b3af8d0..3b8ca4c940603b4eea01e99ec728203ec8c0f768 100644 (file)
@@ -135,6 +135,14 @@ __PACKAGE__->belongs_to(
 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:44:22
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:1OCTO6sM27DamVhQi3dWKg
 
+use Class::Method::Modifiers qw/after/;
+
 sub rawowner { shift->get_column('owner') }
 
+after qw/insert update delete/ => sub {
+       my ($self) = @_;
+       Gruntmaster::Data::purge '/us/';
+       Gruntmaster::Data::purge '/us/' . $self->rawowner;
+};
+
 1;
index 0b0ba4b95f3f3a721c8f16cb258308fb6247e874..73fe6abae0088e7d0c7229e875139fff209110c6 100644 (file)
@@ -215,6 +215,14 @@ __PACKAGE__->has_many(
 # Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:54:00
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:LiA2+ZpTTelwZJtFpZRsbw
 
+use Class::Method::Modifiers qw/after/;
+
+after qw/insert update delete/ => sub {
+       my ($self) = @_;
+       Gruntmaster::Data::purge '/us/';
+       Gruntmaster::Data::purge '/us/' . $self->id;
+};
+
 use Authen::Passphrase;
 use Authen::Passphrase::BlowfishCrypt;
 
This page took 0.017973 seconds and 4 git commands to generate.