Yay, test passes!
[dbsrgits/DBIx-Class-Journal.git] / lib / DBIx / Class / Journal.pm
1 package DBIx::Class::Journal;
2
3 use base qw/DBIx::Class/;
4
5 ## On create/insert, add new entry to AuditLog
6
7 # sub new
8 # {
9 #     my ($class, $attrs, @rest) = @_;
10
11 #     $class->result_source->schema->_journal_schema->current_user(delete $attrs->{user_id});
12
13 #     $class->next::method($attrs, @rest);
14 # }
15
16 sub insert
17 {
18     my ($self) = @_;
19
20     ## create new transaction here?
21     my $res = $self->next::method();
22     if($self->in_storage)
23     {
24         my $s_name = $self->result_source->source_name();
25         my $al = $self->result_source->schema->_journal_schema->resultset("${s_name}AuditLog");
26         my ($pri, $too_many) = map { $self->get_column($_)} $self->primary_columns;
27         if(defined $pri && defined $too_many) 
28         {
29             $self->throw_exception( "More than one possible key found for auto-inc on ".ref $self );
30         }
31         $pri ||= \'NULL';   #'
32         $al->create({
33             ID => $pri,
34 #            created => {
35 #                changeset => $self->result_source->schema->_journal_schema->current_changeset(),
36 #            },
37         });
38     }
39
40     return $res;
41 }
42
43 ## On delete, update delete_id of AuditLog
44
45 ## On update, copy previous row's contents to AuditHistory
46
47
48
49 1;