/[notice-sender]/trunk/Nos.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/Nos.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 77 by dpavlin, Thu Aug 25 00:37:48 2005 UTC revision 80 by dpavlin, Fri Aug 26 05:38:00 2005 UTC
# Line 709  sub inbox_message { Line 709  sub inbox_message {
709    
710  Returns all received messages for given list or user.  Returns all received messages for given list or user.
711    
712   my @received = $nos->received_message(   my @received = $nos->received_messages(
713          list => 'My list',          list => 'My list',
714          email => "john.doe@example.com",          email => "john.doe@example.com",
715            from_date => '2005-01-01 10:15:00',
716            to_date => '2005-01-01 12:00:00',
717            message => 0,
718   );   );
719    
720    If don't specify C<list> or C<email> it will return all received messages.
721    Results will be sorted by received date, oldest first.
722    
723    Other optional parametars include:
724    
725    =over 10
726    
727    =item from_date
728    
729    Date (in ISO format) for lower limit of dates received
730    
731    =item to_date
732    
733    Return just messages older than this date
734    
735    =item message
736    
737    Include whole received message in result. This will probably make result
738    array very large. Use with care.
739    
740    =back
741    
742  Each element in returned array will have following structure:  Each element in returned array will have following structure:
743    
744   {   my $row = {
745          id => 42,                       # unique ID of received message          id => 42,                       # unique ID of received message
746          list => 'My list',              # useful only of filtering by email          list => 'My list',              # useful if filtering by email
747          ext_id => 9999,                 # ext_id from message user          ext_id => 9999,                 # ext_id from message sender
748          email => 'jdoe@example.com',    # e-mail of user          email => 'jdoe@example.com',    # e-mail of message sender
749          bounced => 0,                   # true value if message is bounce          bounced => 0,                   # true if message is bounce
750          date => '2005-08-24 18:57:24',  # date of recival in ISO format          date => '2005-08-24 18:57:24',  # date of receival in ISO format
751   }   }
752    
753    If you specified C<message> option, this hash will also have C<message> key
754    which will contain whole received message.
755    
756  =cut  =cut
757    
# Line 741  sub received_messages { Line 768  sub received_messages {
768                                  lists.name as list,                                  lists.name as list,
769                                  users.ext_id as ext_id,                                  users.ext_id as ext_id,
770                                  users.email as email,                                  users.email as email,
771            };
772            $sql .= qq{             message,} if ($arg->{'message'});
773            $sql .= qq{
774                                  bounced,received.date as date                                  bounced,received.date as date
775                          from received                          from received
776                          join lists on lists.id = list_id                          join lists on lists.id = list_id
777                          join users on users.id = user_id                          join users on users.id = user_id
778          };          };
779    
780            my $order = qq{ order by date desc };
781    
782          my $where;          my $where;
783    
784          $where->{'lists.name'} = lc($arg->{'list'}) if ($arg->{'list'});          $where->{'lists.name'} = lc($arg->{'list'}) if ($arg->{'list'});
785          $where->{'users.email'} = lc($arg->{'email'}) if ($arg->{'email'});          $where->{'users.email'} = lc($arg->{'email'}) if ($arg->{'email'});
786            $where->{'received.date'} = { '>=', $arg->{'date_from'} } if ($arg->{'date_from'});
787            $where->{'received.date'} = { '<=', $arg->{'date_to'} } if ($arg->{'date_to'});
788    
789          # hum, yammy one-liner          # hum, yammy one-liner
790          my($stmt, @bind)  = SQL::Abstract->new->where($where);          my($stmt, @bind)  = SQL::Abstract->new->where($where);
791    
792          my $dbh = $self->{'loader'}->find_class('received')->db_Main;          my $dbh = $self->{'loader'}->find_class('received')->db_Main;
793    
794          my $sth = $dbh->prepare($sql . $stmt);          my $sth = $dbh->prepare($sql . $stmt . $order);
795          $sth->execute(@bind);          $sth->execute(@bind);
796          return $sth->fetchall_hash;          return $sth->fetchall_hash;
797  }  }
# Line 1155  sub AddMessageToList { Line 1189  sub AddMessageToList {
1189          }          }
1190  }  }
1191    
 =head1 UNIMPLEMENTED FUNCTIONS  
   
 This is a stub for documentation of unimplemented functions.  
   
1192  =head2 MessagesReceived  =head2 MessagesReceived
1193    
1194    Return statistics about received messages.
1195    
1196   my @result = MessagesReceived(   my @result = MessagesReceived(
1197          list => 'My list',          list => 'My list',
1198          email => 'jdoe@example.com',          email => 'jdoe@example.com',
1199            from_date => '2005-01-01 10:15:00',
1200            to_date => '2005-01-01 12:00:00',
1201            message => 0,
1202   );   );
1203    
1204  You can specify just C<list> or C<email> or any combination of those.  You must specify C<list> or C<email> or any combination of those two. Other
1205    parametars are optional.
1206    
1207  For format of returned array element see C<received_messages>.  For format of returned array element see C<received_messages>.
1208    
1209    =cut
1210    
1211    sub MessagesReceived {
1212            my $self = shift;
1213    
1214            if ($_[0] !~ m/^HASH/) {
1215                    die "need at least list or email" unless (scalar @_ < 2);
1216                    return $nos->received_messages(
1217                            list => $_[0], email => $_[1],
1218                            from_date => $_[2], to_date => $_[3],
1219                            message => $_[4]
1220                    );
1221            } else {
1222                    my $arg = shift;
1223                    die "need list or email argument" unless ($arg->{'list'} || $arg->{'email'});
1224                    return $nos->received_messages( $arg );
1225            }
1226    }
1227    
1228    ###
1229    
1230    =head1 UNIMPLEMENTED SOAP FUNCTIONS
1231    
1232    This is a stub for documentation of unimplemented functions.
1233    
1234  =head2 MessagesReceivedByDate  =head2 MessagesReceivedByDate
1235    
1236  =head2 MessagesReceivedByDateWithContent  =head2 MessagesReceivedByDateWithContent
1237    
1238  =head2 ReceivedMessasgeContent  =head2 ReceivedMessageContent
1239    
1240  Return content of received message.  Return content of received message.
1241    
1242   my $mail_body = ReceivedMessageContent( id => 42 );   my $mail_body = ReceivedMessageContent( id => 42 );
1243    
 =cut  
   
1244    
1245    
1246    
 ###  
   
1247  =head1 NOTE ON ARRAYS IN SOAP  =head1 NOTE ON ARRAYS IN SOAP
1248    
1249  Returning arrays from SOAP calls is somewhat fuzzy (at least to me). It  Returning arrays from SOAP calls is somewhat fuzzy (at least to me). It

Legend:
Removed from v.77  
changed lines
  Added in v.80

  ViewVC Help
Powered by ViewVC 1.1.26