/usr/local/CPAN/WebService-Backlog/WebService/Backlog/FindCondition.pm
package WebService::Backlog::FindCondition;
# $Id$
use strict;
use warnings;
use base qw(Class::Accessor::Fast);
use RPC::XML::Client;
my @PARAMS_COUNT = qw/
issueTypeId componentId versionId milestoneId
statusId priorityId assignerId createdUserId resolutionId
created_on_min created_on_max updated_on_min updated_on_max
start_date_min start_date_max due_date_min due_date_max
query
/;
my @PARAMS_FIND = ( @PARAMS_COUNT, qw/sort order offset limit/ );
__PACKAGE__->mk_accessors( ( 'projectId', @PARAMS_FIND ) );
sub toCountCond {
my $self = shift;
return $self->_toCond( \@PARAMS_COUNT );
}
sub toFindCond {
my $self = shift;
return $self->_toCond( \@PARAMS_FIND );
}
sub _toCond {
my $self = shift;
my $params = shift;
my $cond = {};
$cond->{projectId} = $self->projectId;
for my $p ( @{$params} ) {
if ( defined $self->$p ) {
if ( $p ne 'order' ) {
$cond->{$p} = $self->$p;
}
else {
$cond->{order} = RPC::XML::boolean->new( $self->$p );
}
}
}
return $cond;
}
1;
__END__