DBIx-Class-AuditLog

 view release on metacpan or  search on metacpan

lib/DBIx/Class/ResultSet/AuditLog.pm  view on Meta::CPAN

package DBIx::Class::ResultSet::AuditLog;
$DBIx::Class::ResultSet::AuditLog::VERSION = '0.6.4';
use strict;
use warnings;

use base "DBIx::Class::ResultSet";


sub delete {
	shift->delete_all;
};


sub update {
	shift->update_all(@_);
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

DBIx::Class::ResultSet::AuditLog

=head1 VERSION

version 0.6.4

=head1 SYNOPSIS

Either create your own resultset-classes for each audited result-class, and load 
AuditLogs resultset-component:

	package MySchema::ResultSet::MyAuditedSource;
	
	use base "DBIx::Class::ResultSet"; # or use Moose and MooseX::NonMoose;

	__PACKAGE__->load_components("ResultSet::AuditLog");

Or set the default resultset-class in your Schema:

	package MySchema;

	use base "DBIx::Class::Schema";

	...

	__PACKAGE__->load_namespaces(
		default_resultset_class => "AuditLog"
	);

=head1 DESCRIPTION

This resultset class enables logging for database updates made by calling
L<DBIx::Class::ResultSet/delete> and L<DBIx::Class::ResultSet/update>.
This includes any updates made by methods which rely on the above, like
L<DBIx::Class::Relationship::Base/set_\$rel>.

If you want full logging in a relational database, you most likely want to use this 
component.

=head2 NOTE:

The current implementation enables logging in the resultset by simply delegating
'delete' and 'update' to 'delete_all' and 'update_all', which call the required triggers.
As a result, a database query like 

 "DELETE FROM table WHERE id IN '1', '2', '3'"



( run in 0.471 second using v1.01-cache-2.11-cpan-39bf76dae61 )