]> wagnertech.de Git - mfinanz.git/blob - SL/DB/Manager/ValidityToken.pm
kivitendo 3.9.2-0.2
[mfinanz.git] / SL / DB / Manager / ValidityToken.pm
1 package SL::DB::Manager::ValidityToken;
2
3 use strict;
4
5 use parent qw(SL::DB::Helper::Manager);
6
7 sub object_class { 'SL::DB::ValidityToken' }
8
9 use Carp;
10
11 __PACKAGE__->make_manager_methods;
12
13 sub cleanup {
14   my ($class) = @_;
15   $class->delete_all(where => [ valid_until => { lt => DateTime->now_local }]);
16 }
17
18 sub fetch_valid_token {
19   my ($class, %params) = @_;
20
21   croak "missing required parameter 'scope'" if !$params{scope};
22
23   return undef if !$params{token};
24
25   my $token_obj = $class->get_first(
26     where => [
27       scope       => $params{scope},
28       token       => $params{token},
29       valid_until => { ge => DateTime->now_local },
30     ],
31     for_update => 1);
32
33   return $token_obj;
34 }
35
36 1;