154 |
} |
} |
155 |
|
|
156 |
|
|
157 |
|
=head2 delete_list |
158 |
|
|
159 |
|
Delete list from database. |
160 |
|
|
161 |
|
my $ok = delete_list( |
162 |
|
list => 'My list' |
163 |
|
); |
164 |
|
|
165 |
|
Returns false if list doesn't exist. |
166 |
|
|
167 |
|
=cut |
168 |
|
|
169 |
|
sub delete_list { |
170 |
|
my $self = shift; |
171 |
|
|
172 |
|
my $args = {@_}; |
173 |
|
|
174 |
|
croak "need list to delete" unless ($args->{'list'}); |
175 |
|
|
176 |
|
$args->{'list'} = lc($args->{'list'}); |
177 |
|
|
178 |
|
my $lists = $self->{'loader'}->find_class('lists'); |
179 |
|
|
180 |
|
my $this_list = $lists->search( name => $args->{'list'} )->first || return; |
181 |
|
|
182 |
|
$this_list->delete || croak "can't delete list\n"; |
183 |
|
|
184 |
|
return $lists->dbi_commit || croak "can't commit"; |
185 |
|
} |
186 |
|
|
187 |
|
|
188 |
=head2 add_member_to_list |
=head2 add_member_to_list |
189 |
|
|
190 |
Add new member to list |
Add new member to list |
374 |
my $this_user = $user->search( email => $args->{'email'} )->first || croak "can't find user: ".$args->{'email'}; |
my $this_user = $user->search( email => $args->{'email'} )->first || croak "can't find user: ".$args->{'email'}; |
375 |
my $this_list = $list->search( name => $args->{'list'} )->first || croak "can't find list: ".$args->{'list'}; |
my $this_list = $list->search( name => $args->{'list'} )->first || croak "can't find list: ".$args->{'list'}; |
376 |
|
|
377 |
my $this_user_list = $user_list->search_where( list_id => $this_list->id, user_id => $this_list->id )->first || return; |
my $this_user_list = $user_list->search_where( list_id => $this_list->id, user_id => $this_user->id )->first || return; |
378 |
|
|
379 |
$this_user_list->delete || croak "can't delete user from list\n"; |
$this_user_list->delete || croak "can't delete user from list\n"; |
380 |
|
|
800 |
} |
} |
801 |
|
|
802 |
|
|
803 |
|
=head2 DeleteList |
804 |
|
|
805 |
|
$ok = DeleteList( |
806 |
|
list => 'My list', |
807 |
|
); |
808 |
|
|
809 |
|
=cut |
810 |
|
|
811 |
|
sub DeleteList { |
812 |
|
my $self = shift; |
813 |
|
|
814 |
|
if ($_[0] !~ m/^HASH/) { |
815 |
|
return $nos->delete_list( |
816 |
|
list => $_[0], |
817 |
|
); |
818 |
|
} else { |
819 |
|
return $nos->delete_list( %{ shift @_ } ); |
820 |
|
} |
821 |
|
} |
822 |
|
|
823 |
=head2 AddMemberToList |
=head2 AddMemberToList |
824 |
|
|
825 |
$member_id = AddMemberToList( |
$member_id = AddMemberToList( |
852 |
|
|
853 |
Returns array of hashes with user informations, see C<list_members>. |
Returns array of hashes with user informations, see C<list_members>. |
854 |
|
|
855 |
|
Returning arrays from SOAP calls is somewhat fuzzy (at least to me). It |
856 |
|
seems that SOAP::Lite client thinks that it has array with one element which |
857 |
|
is array of hashes with data. |
858 |
|
|
859 |
=cut |
=cut |
860 |
|
|
861 |
sub ListMembers { |
sub ListMembers { |
869 |
$list_name = $_[0]->{'list'}; |
$list_name = $_[0]->{'list'}; |
870 |
} |
} |
871 |
|
|
872 |
return $nos->list_members( list => $list_name ); |
return [ $nos->list_members( list => $list_name ) ]; |
873 |
|
} |
874 |
|
|
875 |
|
|
876 |
|
=head2 DeleteMemberFromList |
877 |
|
|
878 |
|
$member_id = DeleteMemberFromList( |
879 |
|
list => 'My list', |
880 |
|
email => 'e-mail@example.com', |
881 |
|
); |
882 |
|
|
883 |
|
=cut |
884 |
|
|
885 |
|
sub DeleteMemberFromList { |
886 |
|
my $self = shift; |
887 |
|
|
888 |
|
if ($_[0] !~ m/^HASH/) { |
889 |
|
return $nos->delete_member_from_list( |
890 |
|
list => $_[0], email => $_[1], |
891 |
|
); |
892 |
|
} else { |
893 |
|
return $nos->delete_member_from_list( %{ shift @_ } ); |
894 |
|
} |
895 |
} |
} |
896 |
|
|
897 |
|
|
898 |
=head2 AddMessageToList |
=head2 AddMessageToList |
899 |
|
|
900 |
$message_id = AddMessageToList( |
$message_id = AddMessageToList( |