26 |
use Email::Simple; |
use Email::Simple; |
27 |
use Email::Address; |
use Email::Address; |
28 |
use Mail::DeliveryStatus::BounceParser; |
use Mail::DeliveryStatus::BounceParser; |
29 |
|
use Class::DBI::AbstractSearch; |
30 |
|
|
31 |
|
|
32 |
=head1 NAME |
=head1 NAME |
75 |
user => $self->{'user'}, |
user => $self->{'user'}, |
76 |
password => $self->{'passwd'}, |
password => $self->{'passwd'}, |
77 |
namespace => "Nos", |
namespace => "Nos", |
78 |
# additional_classes => qw/Class::DBI::AbstractSearch/, |
additional_classes => qw/Class::DBI::AbstractSearch/, |
79 |
# additional_base_classes => qw/My::Stuff/, |
# additional_base_classes => qw/My::Stuff/, |
80 |
relationships => 1, |
relationships => 1, |
81 |
) || croak "can't init Class::DBI::Loader"; |
) || croak "can't init Class::DBI::Loader"; |
275 |
return $users->dbi_commit || croak "can't commit"; |
return $users->dbi_commit || croak "can't commit"; |
276 |
} |
} |
277 |
|
|
278 |
|
=head2 delete_member_from_list |
279 |
|
|
280 |
|
Delete member from particular list. |
281 |
|
|
282 |
|
my $ok = delete_member_from_list( |
283 |
|
list => 'My list', |
284 |
|
email => 'dpavlin@rot13.org', |
285 |
|
); |
286 |
|
|
287 |
|
Returns false if user doesn't exist on that particular list. |
288 |
|
|
289 |
|
It will die if list or user doesn't exist. You have been warned (you might |
290 |
|
want to eval this functon to prevent it from croaking). |
291 |
|
|
292 |
|
=cut |
293 |
|
|
294 |
|
sub delete_member_from_list { |
295 |
|
my $self = shift; |
296 |
|
|
297 |
|
my $args = {@_}; |
298 |
|
|
299 |
|
croak "need list name and email of user to delete" unless ($args->{'list'} && $args->{'email'}); |
300 |
|
|
301 |
|
$args->{'list'} = lc($args->{'list'}); |
302 |
|
$args->{'email'} = lc($args->{'email'}); |
303 |
|
|
304 |
|
my $user = $self->{'loader'}->find_class('users'); |
305 |
|
my $list = $self->{'loader'}->find_class('lists'); |
306 |
|
my $user_list = $self->{'loader'}->find_class('user_list'); |
307 |
|
|
308 |
|
my $this_user = $user->search( email => $args->{'email'} )->first || croak "can't find user: ".$args->{'email'}; |
309 |
|
my $this_list = $list->search( name => $args->{'list'} )->first || croak "can't find list: ".$args->{'list'}; |
310 |
|
|
311 |
|
my $this_user_list = $user_list->search_where( list_id => $this_list->id, user_id => $this_list->id )->first || return; |
312 |
|
|
313 |
|
$this_user_list->delete || croak "can't delete user from list\n"; |
314 |
|
|
315 |
|
return $user_list->dbi_commit || croak "can't commit"; |
316 |
|
} |
317 |
|
|
318 |
=head2 add_message_to_list |
=head2 add_message_to_list |
319 |
|
|
320 |
Adds message to one list's queue for later sending. |
Adds message to one list's queue for later sending. |