Add settings for current_user/session/changeset, overload insert()
[dbsrgits/DBIx-Class-Journal.git] / lib / DBIx / Class / Journal.pm
CommitLineData
f0f14c64 1package DBIx::Class::Journal;
2
3use base qw/DBIx::Class/;
f0f14c64 4
74f04ccc 5## On create/insert, add new entry to AuditLog
6
7sub new
8{
9 my ($class, $attrs, @rest) = @_;
10
11 $class->result_source->schema->_journal_schema->current_user(delete $attrs->{user_id});
12
13 $self->next::method($attrs, @rest);
14}
15
16sub insert
17{
18 my ($self) = @_;
19
20 ## create new transaction here?
21 $self->next::method();
22 if($self->in_storage)
23 {
24 my $s_name = $self->result_source_instance->name();
25 my $al = $self->result_source->schema->_journal_schema->resultset("${s_name}AuditLog");
26 $al->create({
27 changeset => $self->result_source->schema->_journal_schema->current_changeset(),
28 });
29}
30
31## On delete, update delete_id of AuditLog
32
33## On update, copy previous row's contents to AuditHistory
34
f0f14c64 35
36
371;