NAME

Net::Google::DocumentsList::Role::HasItems - item CRUD implementation

SYNOPSIS

use Net::Google::DocumentsList;

my $service = Net::Google::DocumentsList->new(
  username => 'myname@gmail.com',
  password => 'p4$$w0rd'
);

# add a document to the root directory of your docs.
my $doc = $service->add_item(
  {
      title => 'my document',
      kind  => 'document',
  }
);

# add a folder to the root directory of your docs.
my $folder = $service->add_folder(
  {
      title => 'my folder',
  }
);

# add a spreadsheet to a directory
my $spreadsheet = $folder->add_item(
  {
      title => 'my spreadsheet',
      kind  => 'spreadsheet',
  }
);

DESCRIPTION

This module implements item CRUD for Google Documents List Data API.

METHODS

add_item

creates specified file or folder.

my $file = $client->add_item(
  {
      title => 'my document',
      kind  => 'document',
  }
);

available values for 'kind' are 'document', 'folder', 'pdf', 'presentation', 'spreadsheet', and 'form'.

You can also upload file:

my $uploaded = $client->add_item(
  {
      title => 'uploaded file',
      file  => '/path/to/my/presentation.ppt',
  }
);

To translate the file specify source_language and target_language:

my $uploaded = $client->add_item(
  {
      title => 'uploaded file',
      file  => '/path/to/my/presentation.ppt',
      source_language => 'ja',
      target_language => 'en',
  }
);

THIS DOESN NOT WORK FOR NOW (2010 NOV 28)

items

searches items like this:

my @items = $client->items(
  {
      'title' => 'my document',
      'title-exact' => 'true',
      'category' => 'document',
  }
);

my @not_viewed_and_starred_presentation = $client->items(
  {
      'category' => ['-viewed','starred','presentation'],
  }
);

You can specify query with hashref and specify categories in 'category' key. See http://code.google.com/intl/en/apis/documents/docs/3.0/developers_guide_protocol.html#SearchingDocs for details.

You can also specify resource_id for the query. It naturally returns 0 or 1 item which matches the resource_id. This is useful to work with Net::Google::Spreadsheets:

my $ss_in_docs = $client->item(
    {resource_id => 'spreadsheet:'.$ss->key}
);

item

returns the first item found by items method.

add_folder

shortcut for add_item({kind => 'folder'}).

my $new_folder = $client->add_folder( { title => 'new_folder' } );

is equivalent to

my $new_folder = $client->add_item( 
    { 
        title => 'new_folder',
        kind  => 'folder',
    } 
);

folders

shortcut for items({category => 'folder'}).

folder

returns the first folder found by folders method.

AUTHOR

Noubo Danjou <danjou@soffritto.org>

SEE ALSO

Net::Google::DocumentsList

Net::Google::DataAPI

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.