diff options
Diffstat (limited to 'perllib/FixMyStreet/Roles/Moderation.pm')
-rw-r--r-- | perllib/FixMyStreet/Roles/Moderation.pm | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/Roles/Moderation.pm b/perllib/FixMyStreet/Roles/Moderation.pm new file mode 100644 index 000000000..f43b65208 --- /dev/null +++ b/perllib/FixMyStreet/Roles/Moderation.pm @@ -0,0 +1,41 @@ +package FixMyStreet::Roles::Moderation; +use Moo::Role; + +=head2 latest_moderation_log_entry + +Return most recent AdminLog object concerning moderation + +=cut + +sub latest_moderation_log_entry { + my $self = shift; + + my $latest = $self->moderation_original_datas->search( + $self->moderation_filter, + { order_by => { -desc => 'id' } })->first; + return unless $latest; + + my $rs = $self->result_source->schema->resultset("AdminLog"); + my $log = $rs->search({ + object_id => $latest->id, + object_type => 'moderation', + })->first; + return $log if $log; + + return $self->admin_log_entries->search({ action => 'moderation' }, { order_by => { -desc => 'id' } })->first; +} + +=head2 moderation_history + +Returns all moderation history, most recent first. + +=cut + +sub moderation_history { + my $self = shift; + return $self->moderation_original_datas->search( + $self->moderation_filter, + { order_by => { -desc => 'id' } })->all; +} + +1; |