epic-ts
[kivitendo-erp.git] / SL / DB / Helper / Manager.pm
1 package SL::DB::Helper::Manager;
2
3 use strict;
4
5 use Rose::DB::Object::Manager;
6 use base qw(Rose::DB::Object::Manager);
7
8 sub make_manager_methods {
9   my $class  = shift;
10   my @params = scalar(@_) ? @_ : qw(all);
11   return $class->SUPER::make_manager_methods(@params);
12 }
13
14 sub find_by {
15   my $class = shift;
16
17   return if !@_;
18   return $class->get_all(query => [ @_ ], limit => 1)->[0];
19 }
20
21 sub find_by_or_create {
22   my $class = shift;
23
24   my $found;
25   eval { $found = $class->find_by(@_); };
26   return defined $found ? $found : $class->object_class->new;
27 }
28
29 sub get_first {
30   shift->get_all(
31     @_,
32     limit => 1,
33   )->[0];
34 }
35
36 1;