/[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 39 by dpavlin, Tue May 17 22:23:40 2005 UTC revision 45 by dpavlin, Wed May 18 13:12:54 2005 UTC
# Line 16  our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all' Line 16  our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'
16  our @EXPORT = qw(  our @EXPORT = qw(
17  );  );
18    
19  our $VERSION = '0.3';  our $VERSION = '0.4';
20    
21  use Class::DBI::Loader;  use Class::DBI::Loader;
22  use Email::Valid;  use Email::Valid;
# Line 158  sub add_member_to_list { Line 158  sub add_member_to_list {
158                  email => $email,                  email => $email,
159          }) || croak "can't find or create member\n";          }) || croak "can't find or create member\n";
160    
161          if ($name && $this_user->full_name ne $name) {          if ($name && $this_user->name ne $name) {
162                  $this_user->full_name($name || '');                  $this_user->name($name || '');
163                  $this_user->update;                  $this_user->update;
164          }          }
165    
# Line 175  sub add_member_to_list { Line 175  sub add_member_to_list {
175          return $this_user->id;          return $this_user->id;
176  }  }
177    
178    =head2 list_members
179    
180    List all members of some list.
181    
182     my @members = list_members(
183            list => 'My list',
184     );
185    
186    Returns array of hashes with user informations like this:
187    
188     $member = {
189            name => 'Dobrica Pavlinusic',
190            email => 'dpavlin@rot13.org
191     }
192    
193    If list is not found, returns false.
194    
195    =cut
196    
197    sub list_members {
198            my $self = shift;
199    
200            my $args = {@_};
201    
202            my $list_name = $args->{'list'} || confess "need list name";
203    
204            my $lists = $self->{'loader'}->find_class('lists');
205            my $user_list = $self->{'loader'}->find_class('user_list');
206    
207            my $this_list = $lists->search( name => $list_name )->first || return;
208    
209            my @results;
210    
211            foreach my $user_on_list ($user_list->search(list_id => $this_list->id)) {
212                    my $row = {
213                            name => $user_on_list->user_id->name,
214                            email => $user_on_list->user_id->email,
215                    };
216    
217                    push @results, $row;
218            }
219    
220            return @results;
221    
222    }
223    
224    
225    =head2 delete_member
226    
227    Delete member from database.
228    
229     my $ok = delete_member(
230            name => 'Dobrica Pavlinusic'
231     );
232    
233     my $ok = delete_member(
234            email => 'dpavlin@rot13.org'
235     );
236    
237    Returns false if user doesn't exist.
238    
239    =cut
240    
241    sub delete_member {
242            my $self = shift;
243    
244            my $args = {@_};
245    
246            croak "need name or email of user to delete" unless ($args->{'name'} || $args->{'email'});
247    
248            my $key = 'name';
249            $key = 'email' if ($args->{'email'});
250    
251            my $users = $self->{'loader'}->find_class('users');
252    
253            my $this_user = $users->search( $key => $args->{$key} )->first || return;
254    
255    print Dumper($this_user);
256    
257            $this_user->delete || croak "can't delete user\n";
258    
259            return $users->dbi_commit || croak "can't commit";
260    }
261    
262  =head2 add_message_to_list  =head2 add_message_to_list
263    
264  Adds message to one list's queue for later sending.  Adds message to one list's queue for later sending.
# Line 288  sub send_queued_messages { Line 372  sub send_queued_messages {
372                                  my $hash = $auth->generate_hash( $to_email );                                  my $hash = $auth->generate_hash( $to_email );
373    
374                                  my $from = $u->list_id->name . " <" . $from . "+" . $hash . ( $domain ? "@" . $domain : '' ). ">";                                  my $from = $u->list_id->name . " <" . $from . "+" . $hash . ( $domain ? "@" . $domain : '' ). ">";
375                                  my $to = $u->user_id->full_name . " <$to_email>";                                  my $to = $u->user_id->name . " <$to_email>";
376    
377                                  my $m_obj = Email::Simple->new($msg) || croak "can't parse message";                                  my $m_obj = Email::Simple->new($msg) || croak "can't parse message";
378    
# Line 370  sub inbox_message { Line 454  sub inbox_message {
454                  $user_id = $sent_msg->user_id || carp "no user_id";                  $user_id = $sent_msg->user_id || carp "no user_id";
455          }          }
456    
 print "message_id: ",($message_id || "not found"),"\n";  
457    
458          my $is_bounce = 0;          my $is_bounce = 0;
459    
# Line 393  print "message_id: ",($message_id || "no Line 476  print "message_id: ",($message_id || "no
476    
477          $this_received->dbi_commit;          $this_received->dbi_commit;
478    
479            print "message_id: ",($message_id || "not found")," -- $is_bounce\n";
480    
481    
482          warn "inbox is not yet implemented";          warn "inbox is not yet implemented";
483  }  }
484    
# Line 469  sub _get_list { Line 555  sub _get_list {
555    
556  package Nos::SOAP;  package Nos::SOAP;
557    
558    use Carp;
559    
560  =head1 SOAP methods  =head1 SOAP methods
561    
562  This methods are thin wrappers to provide SOAP calls. They are grouped in  This methods are thin wrappers to provide SOAP calls. They are grouped in
# Line 517  sub NewList { Line 605  sub NewList {
605          }          }
606  }  }
607    
608    
609  =head2 AddMemberToList  =head2 AddMemberToList
610    
611   $member_id = AddMemberToList(   $member_id = AddMemberToList(
612          list => "My list",          list => 'My list',
613          email => "e-mail@example.com",          email => 'e-mail@example.com',
614          name => "Full Name"          name => 'Full Name'
615   );   );
616    
617  =cut  =cut
# Line 539  sub AddMemberToList { Line 628  sub AddMemberToList {
628          }          }
629  }  }
630    
631    
632    =head2 ListMembers
633    
634     my @members = ListMembers(
635            list => 'My list',
636     );
637    
638    Returns array of hashes with user informations, see C<list_members>.
639    
640    =cut
641    
642    sub ListMembers {
643            my $self = shift;
644    
645            my $list_name;
646    
647            if ($_[0] !~ m/^HASH/) {
648                    $list_name = shift;
649            } else {
650                    $list_name = $_[0]->{'list'};
651            }
652    
653            return $nos->list_members( list => $list_name );
654    }
655    
656  =head2 AddMessageToList  =head2 AddMessageToList
657    
658   $message_id = AddMessageToList(   $message_id = AddMessageToList(

Legend:
Removed from v.39  
changed lines
  Added in v.45

  ViewVC Help
Powered by ViewVC 1.1.26