Net-Todoist

 view release on metacpan or  search on metacpan

lib/Net/Todoist.pm  view on Meta::CPAN


    my $resp = $self->{ua}->post(
        'https://todoist.com/API/query',
        [
            token   => $self->{token},
            queries => '[' . join( ',', @$queries ) . ']',
            $args->{as_count} ? ( as_count => $args->{as_count} ) : (),
            $args->{js_date}  ? ( js_date  => $args->{js_date} )  : (),
        ]
    );
    unless ( $resp->is_success ) {
        $errstr = $resp->status_line;
        return;
    }

    my $data = $self->{json}->decode( $resp->content );
    return wantarray ? @$data : $data;
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

Net::Todoist - interface to the API for Todoist (a to-do list service)

=head1 VERSION

version 0.06

=head1 SYNOPSIS

    use Net::Todoist;
    
    my $nt = Net::Todoist->new( token => $token );
    
    # or use login to get the token
    my $nt = Net::Todoist->new();
    my $user = $nt->login($email, $pass) or die "login failed: " . $nt->errstr;
    # or use register to set the token
    my $nt = Net::Todoist->new();
    my $user = $nt->register(
        email => $email,
        full_name => 'Fayland Lam',
        password  => 'guessitplz',
        timezone  => "GMT +8:00"
    ) or die "Can't register: " . $nt->errstr;
    
    ## updateUser

=head1 DESCRIPTION

This module provide an interface to the API for the
L<Todoist|http://todoist.com/>.
Todoist is a to-do list service that can be accessed from
a web interface or dedicated desktop or mobile clients.
The basic service is free, but you can pay to get additional features.

Read L<http://todoist.com/API/help> for more details.

=head2 METHODS

=head3 CONSTRUCTION

    my $nt = Net::Todoist->new( token => $token );

=over 4

=item * token (optional)

the API token from L<http://todoist.com>

=item * ua_args

passed to LWP::UserAgent

=item * ua

L<LWP::UserAgent> or L<WWW::Mechanize> instance

=back

=head3 login

    my $user = $nt->login($email, $pass) or die "login failed: " . $nt->errstr;

you don't need call ->login if you pass the B<token> in the ->new

=head3 getTimezones

    my @timezone = $nt->getTimezones();

Returns the timezones Todoist supports.

=head3 register

    my $user = $nt->register(
        email => $email,
        full_name => 'Fayland Lam',
        password  => 'guessitplz',
        timezone  => "GMT +8:00"
    ) or die "Can't register: " . $nt->errstr;

=head3 updateUser

    my $user = $nt->updateUser(
        email => $email,
        full_name => 'Fayland Lam',
        password  => 'guessitplz',
        timezone  => "GMT +8:00"
    ) or die "Can't update: " . $nt->errstr;

=head3 getProjects

    my @projects = $nt->getProjects;



( run in 0.702 second using v1.01-cache-2.11-cpan-39bf76dae61 )