API-ReviewBoard

 view release on metacpan or  search on metacpan

ReviewBoard.pm  view on Meta::CPAN


        $self->{_useragent} = LWP::UserAgent->new;
        $self->{_cookie_jar} = HTTP::Cookies->new(file => "lwpcookies.txt", autosave => 1);

        # post request to login
        my $link = $self->{_hostedurl}.'api/json/accounts/login/';
        my $request = new HTTP::Request('POST',$link);

        my $content = 'username='.$self->{_username}.'&password='.$self->{_password};
        $request->content($content);
        my $response = $self->{_useragent}->simple_request($request);

        # extract cookie from response header
        $self->{_cookie_jar}->extract_cookies($response);


        bless $self,$class;
        return $self;

}

=head2 $rb->getReviewBoardLink(changenum  => '112345');
Gets the review board link for a ACTIVE change request number.
=cut

ReviewBoard.pm  view on Meta::CPAN

		@_,
		{  changenum  => { type => SCALAR, optional => 0 },
		}
	);
	$self->{_changenum} = $args{changenum};
        
	# get request to get review number based on change number
	my $changenumlink =  $self->{_hostedurl}.'/api/review-requests/?changenum='.$self->{_changenum};
	my $request = new HTTP::Request('GET', $changenumlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;
        
        $xml=~ m/.*"id": (\d+),.*/;
        my $reviewnum = $1;
        
        my $reviewlink =  $self->{_hostedurl}.'/r/'.$reviewnum;

        return $reviewlink;
}


ReviewBoard.pm  view on Meta::CPAN

                {  changenum  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_changenum} = $args{changenum};


        # get request to get review number based on change number
        my $changenumlink =  $self->{_hostedurl}.'/api/review-requests/?changenum='.$self->{_changenum};
        my $request = new HTTP::Request('GET', $changenumlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*"description": "(.*)", "links".*/;
        my $description = $1;
        $description =~ s/(\\n)+/\n/g;

	return ($description);        
}

=head2 $rb->getReviewDateAdded(changenum  => '112345');

ReviewBoard.pm  view on Meta::CPAN

        my %args  = validate(
                @_,
                {  changenum  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_changenum} = $args{changenum};

        my $changenumlink =  $self->{_hostedurl}.'/api/review-requests/?changenum='.$self->{_changenum};
        my $request = new HTTP::Request('GET', $changenumlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*"time_added": "(.*)", "summary".*/;
        my $dateadded = $1;

	return ($dateadded);
}



=head2 $rb->getReviewLastUpdated(changenum  => '112345');

ReviewBoard.pm  view on Meta::CPAN

        my %args  = validate(
                @_,
                {  changenum  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_changenum} = $args{changenum};
        
	my $changenumlink =  $self->{_hostedurl}.'/api/review-requests/?changenum='.$self->{_changenum};
        my $request = new HTTP::Request('GET', $changenumlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ /.*"last_updated": "(.*)", "description".*/;
        my $lastupdated = $1;


        return ($lastupdated);
}


=head2 $rb->getReviewers(changenum  => '112345');

ReviewBoard.pm  view on Meta::CPAN

        my %args  = validate(
                @_,
                {  changenum  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_changenum} = $args{changenum};

        my $userlink = $self->{_hostedurl}.'/api/review-requests/?changenum='.$self->{_changenum};
        my $request = new HTTP::Request('GET', $userlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

    $xml =~ m/.*"target_people": (.*), "testing_done".*/;
    my $name = $1;
    my @arr;
    my $count = @arr = $name =~ /"title": "(\w+)"/g;
    
    my $reviewers = \@arr;
    
    return ($reviewers);

ReviewBoard.pm  view on Meta::CPAN

                @_,
                {  changenum  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_changenum} = $args{changenum};

        my $userlink = $self->{_hostedurl}.'/api/review-requests/?changenum='.$self->{_changenum};
        my $request = new HTTP::Request('GET', $userlink);
        $self->{_cookie_jar}->add_cookie_header($request);

        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*"submitter": (.*), "screenshots".*/;
        my $name = $1;
        my @arr;
        my $count = @arr = $name =~ /"title": "(\w+)"/g;

        my $submitter = \@arr;

        return ($submitter);

ReviewBoard.pm  view on Meta::CPAN

                @_,
                {  changenum  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_changenum} = $args{changenum};

        my $userlink = $self->{_hostedurl}.'/api/review-requests/?changenum='.$self->{_changenum};
        my $request = new HTTP::Request('GET', $userlink);
        $self->{_cookie_jar}->add_cookie_header($request);

        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*"summary": "(.*)", "public".*/;
        my $summary = $1;


        return ($summary);
}


=head2 $rb->getSummary(changenum  => '112345');

ReviewBoard.pm  view on Meta::CPAN

        my %args  = validate(
                @_,
                {  changenum  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_changenum} = $args{changenum};

        my $userlink = $self->{_hostedurl}.'/api/review-requests/?changenum='.$self->{_changenum};
        my $request = new HTTP::Request('GET', $userlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*"bugs_closed": (.*), "changenum".*/;
        my $bugids = $1;
        return ($bugids);
}


=head2 $rb->getReviewCommentsCount(reviewnum  => '41080');
Gets the count of comments received for an ACTIVE change request.
=cut

ReviewBoard.pm  view on Meta::CPAN

        my %args  = validate(
                @_,
                {  reviewnum  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_reviewnum} = $args{reviewnum};

	my $userlink = $self->{_hostedurl}.'/api/review-requests/'.$self->{_reviewnum}.'/reviews/?counts-only=1';
	my $request = new HTTP::Request('GET', $userlink);
	$self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

	$xml =~ m/.*{"count": (\d+).*/ ;
	my $count = $1;
	return $count;
	
}


=head2 $rb->getOutgoingReviewsCount(user  => 'abdcde');
Gets the count of review requests made by a user.

ReviewBoard.pm  view on Meta::CPAN

        my %args  = validate(
                @_,
                {  user  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_user} = $args{user};

        my $userlink = $self->{_hostedurl}.'/api/review-requests/?from-user='.$self->{_user}.'&status=all&counts-only=1';
        my $request = new HTTP::Request('GET', $userlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*{"count": (\d+).*/ ;
        my $count = $1;
        return ($count);

}


=head2 $rb->getOutgoingReviewsCountByDate(user  => 'abdcde', startdate => '2011-03-01',
                   enddate => '2011-03-30');

ReviewBoard.pm  view on Meta::CPAN

                }
        );

        $self->{_user} = $args{user};
	$self->{_startdate} = $args{startdate};
	$self->{_enddate} = $args{enddate};

        my $userlink = $self->{_hostedurl}.'/api/review-requests/?from-user='.$self->{_user}.'&time-added-from='.$self->{_startdate}.'&time-added-to='.$self->{_enddate}.'&status=all&counts-only=1';
        my $request = new HTTP::Request('GET', $userlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*{"count": (\d+).*/ ;
        my $count = $1;
        return $count;

}



=head2 $rb->getOutgoingReviewsCountByStatus(user  => 'abdcde', status => 'all | pending |submitted | discarded' );

ReviewBoard.pm  view on Meta::CPAN

                   status => { type => SCALAR, optional => 0 },
                }
        );

    $self->{_user} = $args{user};
    $self->{_status} = $args{status};
    
        my $userlink = $self->{_hostedurl}.'/api/review-requests/?from-user='.$self->{_user}.'&status='.$self->{_status}.'&counts-only=1';
        my $request = new HTTP::Request('GET', $userlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*{"count": (\d+).*/ ;
        my $count = $1;
        return $count;

}

=head2 $rb->getIncomingReviewsCount(user  => 'abdcde');

Gets the count of review requests made to a user.

ReviewBoard.pm  view on Meta::CPAN

        my %args  = validate(
                @_,
                {  user  => { type => SCALAR, optional => 0 },
                }
        );
        $self->{_user} = $args{user};

        my $userlink = $self->{_hostedurl}.'/api/review-requests/?to-users='.$self->{_user}.'&counts-only=1';
        my $request = new HTTP::Request('GET', $userlink);
        $self->{_cookie_jar}->add_cookie_header($request);
        my $response = $self->{_useragent}->simple_request($request);
        my $xml = $response->as_string;

        $xml =~ m/.*{"count": (\d+).*/ ;
        my $count = $1;
        return $count;
}

=head1 AUTHOR

This module by Chetan Giridhar E<lt>chetang@cpan.orgE<gt>.



( run in 0.490 second using v1.01-cache-2.11-cpan-49f99fa48dc )