NAME¶
Socialtext::Resting - module for accessing Socialtext REST APIs
SYNOPSIS¶
use Socialtext::Resting;
my $Rester = Socialtext::Resting->new(
username => $opts{username},
password => $opts{password},
server => $opts{server},
);
$Rester->workspace('wikiname');
$Rester->get_page('my_page');
}
DESCRIPTION¶
"Socialtext::Resting" is a module designed to allow remote access to
the Socialtext REST APIs for use in perl programs.
METHODS¶
new¶
my $Rester = Socialtext::Resting->new(
username => $opts{username},
password => $opts{password},
server => $opts{server},
);
or
my $Rester = Socialtext::Resting->new(
user_cookie => $opts{user_cookie},
server => $opts{server},
);
Creates a Socialtext::Resting object for the specified server/user/password, or
server/cookie combination.
accept¶
$Rester->accept($mime_type);
Sets the HTTP Accept header to ask the server for a specific representation in
future requests.
Standard representations:
http://www.socialtext.net/st-rest-docs/index.cgi?standard_representations
Common representations:
- text/x.socialtext-wiki
- text/html
- application/json
get_page¶
$Rester->workspace('wikiname');
$Rester->get_page('page_name');
Retrieves the content of the specified page. Note that the workspace method
needs to be called first to specify which workspace to operate on.
get_page_revision¶
$Rester->workspace('wikiname');
$Rester->get_page_revision('page_name', 'revision_id');
Retrieves the content of the specified page revision. Note that the workspace
method needs to be called first to specify which workspace to operate on.
get_attachment¶
$Rester->workspace('wikiname');
$Rester->get_attachment('attachment_id');
Retrieves the specified attachment from the workspace. Note that the workspace
method needs to be called first to specify which workspace to operate on.
put_workspacetag¶
$Rester->workspace('wikiname');
$Rester->put_workspacetag('tag');
Add the specified tag to the workspace.
put_pagetag¶
$Rester->workspace('wikiname');
$Rester->put_pagetag('page_name', 'tag');
Add the specified tag to the page.
delete_workspacetag¶
$Rester->workspace('wikiname');
$Rester->delete_workspacetag('tag');
Delete the specified tag from the workspace.
delete_pagetag¶
$Rester->workspace('wikiname');
$Rester->delete_pagetag('page_name', 'tag');
Delete the specified tag from the page.
post_attachment¶
$Rester->workspace('wikiname');
$Rester->post_attachment('page_name',$id,$content,$mime_type);
Attach the file to the specified page
$Rester->workspace('wikiname');
$Rester->post_comment( 'page_name', "me too" );
Add a comment to a page.
put_page¶
$Rester->workspace('wikiname');
$Rester->put_page('page_name',$content);
Save the content as a page in the wiki. $content can either be a string, which
is treated as wikitext, or a hash with the following keys:
- content
- A string which is the page's wiki content.
- date
- RFC 2616 HTTP Date format string of the time the page was
last edited
- from
- A username of the last editor of the page. If the the user
does not exist it will be created, but will not be added to the
workspace.
delete_page¶
$Rester->workspace('wikiname');
$Rester->delete_page('page_name');
Delete the specified page.
name_to_id¶
my $id = $Rester->name_to_id($name);
my $id = Socialtext::Resting::name_to_id($name);
Convert a page name into a page ID. Can be called as a method or as a function.
get_pages¶
$Rester->workspace('wikiname');
$Rester->get_pages();
List all pages in the wiki.
get_page_attachments¶
$Rester->get_page_attachments($page)
List all the attachments on a page.
get_sheet_cell¶
$Rester->get_sheet_cell($page_id, $cellid)
Get the value of a cell in a spreadsheet.
get_revisions¶
$Rester->get_revisions($page)
List all the revisions of a page.
get_taghistory¶
$Rester->workspace('wikiname');
$Rester->get_taghistory($page)
Get a history, by revision, of all tags for a page.
$Rester->workspace('foo');
$Rester->get_workspace_tags()
List all the tags in workspace foo.
get_homepage¶
Return the page name of the homepage of the current workspace.
get_backlinks¶
$Rester->workspace('wikiname');
$Rester->get_backlinks('page_name');
List all backlinks to the specified page
get_frontlinks¶
$Rester->workspace('wikiname');
$Rester->get_frontlinks('page_name');
List all 'frontlinks' on the specified page
get_pagetags¶
$Rester->workspace('wikiname');
$Rester->get_pagetags('page_name');
List all pagetags on the specified page
get_taggedpages¶
$Rester->worksapce('wikiname');
$Rester->get_taggedpages('tag');
List all the pages that are tagged with 'tag'.
get_tag¶
$Rester->workspace('wikiname');
$Rester->get_tag('tag');
Retrieves the specified tag from the workspace. Note that the workspace method
needs to be called first to specify which workspace to operate on.
get_breadcrumbs¶
$Rester->get_breadcrumbs('workspace')
Get breadcrumbs for current user in this workspace
get_workspace¶
$Rester->get_workspace();
Return the metadata about a particular workspace.
get_workspaces¶
$Rester->get_workspaces();
List all workspaces on the server
get_user¶
my $userinfo = $Rester->get_user($username);
print $userinfo->{email_address};
Get information about a username
create_user¶
$Rester->create_user( { username => $username,
email_address => $email,
password => $password } );
Create a new user. Other parameters can be specified, see POD for
Socialtext::User. username is optional and will default to the email address,
as in most cases username and email_address will be the same.
add_user_to_workspace¶
$Rester->add_user_to_workspace( $workspace, { username => $user,
rolename => $role,
send_confirmation_invitation => 0 || 1,
from_address => $from_email } );
Add a user that already exists to a workspace. rolename defaults to 'member',
send_confirmation_invitation defaults to '0'. from_address must refer to a
valid existing user, and is only needed if send_confirmation_invitation is set
to '1'. If the user is already a member of the workspace, this will reset
their role if you specify a role that's different from their current role.
get_users_for_workspace¶
my @users = $Rester->get_users_for_workspace( $workspace );
for ( @users ) { print "$_->{name}, $_->{role}, $->{is_workspace_admin}\n" }
Get a list of users in a workspace, and their roles and admin status.
put_persontag¶
$Rester->put_persontag( $person, $tag )
Tag a person.
$Rester->get_persontags($person);
Retrieves all tags for a person
get_people¶
$Rester->get_people();
Retrieves all people.
get_person¶
$Rester->get_person();
Retrieves a person.
get_signals¶
$Rester->get_signals();
$Rester->get_signals(group_id => 42);
$Rester->get_signals(account_id => 2);
Retrieves the list of signals.
Optional arguments are passed as query paramaters.
post_signal¶
$Rester->post_signal('O HAI');
$Rester->post_signal('O HAI', group_id => 42);
$Rester->post_signal('O HAI', group_ids => [2,3,4]);
$Rester->post_signal('O HAI', account_id => 42);
$Rester->post_signal('O HAI', account_ids => [2,3,4]);
$Rester->post_signal('O HAI', in_reply_to => { signal_id => 142 });
Posts a signal.
Optional "account_ids" and "group_ids" arguments for
targeting the signal.
Optional "in_reply_to_id" for specifying a signal_id this signal is in
reply to.
Optional "annotations" to annotate the signal. "annotations"
should be an array ref containing hashrefs that have one key (the annotation
type) and a value that is a hashref containing key/value pairs.
post_webhook¶
$Rester->post_webhook( %args )
Creates a webhook. Args will be encoded as JSON and put up.
get_webhooks¶
my $hooks = $Rester->get_webhooks();
Returns an arrayref containing hashrefs of each webhook on the server.
delete_webhook¶
$Rester->delete_webhook( id => $webhook_id );
Deletes the specified webhook.
response¶
my $resp = $Rester->response;
Return the HTTP::Response object from the last request.
AUTHORS / MAINTAINERS¶
Shawn Devlin "<shawn.devlin@socialtext.com>"
Kevin Jones "<kevin.jones@socialtext.com>"
Brandon Noard "<brandon.noard@socialtext.com>"
CONTRIBUTORS¶
Luke Closs
Jeremy Stashewsky
Chris Dent
Kirsten Jones
Michele Berg -
get_revisions()