33ac5c80ba30233af80a5834e906406a22695901
[clearscm.git] / maps / lib / MAPSLog.pm
1 #!/usr/bin/perl
2 #################################################################################
3 #
4 # File:         $RCSfile: MAPSLog.pm,v $
5 # Revision:     $Revision: 1.1 $
6 # Description:  MAPS routines for logging.
7 # Author:       Andrew@DeFaria.com
8 # Created:      Fri Nov 29 14:17:21  2002
9 # Modified:     $Date: 2013/06/12 14:05:47 $
10 # Language:     perl
11 #
12 # (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
13 #
14 ################################################################################
15 package MAPSLog;
16
17 use strict;
18 use warnings;
19
20 use base qw(Exporter);
21
22 use MAPS;
23
24 use DateUtils;
25 use Utils;
26
27 our @EXPORT = qw (
28   Debug
29   Error
30   GetStats
31   Info
32   Logmsg
33   @Types
34 );
35
36 our @Types = (
37   'returned',
38   'whitelist',
39   'blacklist',
40   'registered',
41   'mailloop',
42   'nulllist'
43 );
44
45 sub nbr_msgs($) {
46   my ($sender) = @_;
47
48   return FindEmail($sender);
49 } # nbr_msgs
50
51 sub GetStats(%) {
52   my (%params) = @_;
53
54   CheckParms(['userid'], \%params);
55
56   $params{days} ||= 1;
57   $params{date} ||= Today2SQLDatetime;
58
59   my %dates;
60
61   while ($params{days} > 0) {
62     my $ymd = substr $params{date}, 0, 10;
63     my $sod = $ymd . ' 00:00:00';
64     my $eod = $ymd . ' 23:59:59';
65
66     my %stats;
67
68     for (@Types) {
69       my $condition = "type=\'$_\' and (timestamp > \'$sod\' and timestamp < \'$eod\')";
70
71       $stats{$_} = MAPS::CountLog(
72         userid     => $params{userid},
73         additional => $condition,
74       );
75     } # for
76
77     $dates{$ymd} = \%stats;
78
79     $params{date} = SubtractDays $params{date}, 1;
80     $params{days}--;
81   } # while
82
83   return %dates
84 } # GetStats
85
86 sub Logmsg(%) {
87   my(%params) = @_;
88
89   CheckParms(['userid', 'type', 'message'], \%params);
90
91   # TODO Why do I need to qualify this?
92   return MAPS::AddLog(%params);
93 } # logmsg
94
95 sub Debug(%) {
96   my (%params) = @_;
97
98   return Logmsg(
99     userid  => $params{userid},
100     type    => 'debug',
101     message => $params{message});
102 } # Debug
103
104 sub Error(%) {
105   my (%params) = @_;
106
107   return Logmsg(
108     userid  => $params{userid},
109     type    => 'error',
110     message => $params{message});
111   } # Error
112
113 sub Info(%) {
114   my (%params) = @_;
115
116   return Logmsg(
117     userid  => $params{userid},
118     type    => 'info',
119     message => $params{message});
120 } # info
121
122 1;