Ivan Kohler > Net-XRC-0.01 > Net::XRC

Download:
Net-XRC-0.01.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.01   Source   Latest Release: Net-XRC-0.02

NAME ^

Net::XRC - Perl extension for Everyone.net XRC Remote API

SYNOPSIS ^

  use Net::XRC qw(:types);  # pulls in type subroutines:
                            # string, boolean, bytes

  my $xrc = new Net::XRC (
    'clientID' => '1551978',
    'password' => 'password',
  );

  # noop

  my $response = $xrc->noop; #returns Net::XRC::Response object
  die $response->error unless $response->is_success;

  # isAccountName

  my $username = 'tofu_beast';
  my $response = $xrc->isAccountName( $clientID, $username );
  die $response->error unless $response->is_success;
  my $available = $res->content;
  if ( $available ) {
    print "$username is available\n";
  } else {
    print "$username is not available\n";
  }

  # isAccountName (numeric)
  # note the use of string() to force the datatype to string, which would
  # otherwise be (incorrectly) auto-typed as int

  my $numeric_username = '54321';
  my $response = $xrc->isAccountName( $clientID, string($numeric_username) );
  die $response->error unless $response->is_success;
  my $available = $res->content;
  if ( $available ) {
    print "$numeric_username is available\n";
  } else {
    print "$numeric_username is not available\n";
  }

  # createUser 

  my $username = 'tofu_beast';
  my $response = $xrc->createUser( $clientID, [], $username, 'password' );
  die $response->error unless $response->is_success;
  my $uid = $response->content;
  print "$username created: uid $uid\n";

  # createUser (numeric)
  # note the use of string() to force the datatype to string, which would
  # otherwise be (incorrectly) auto-typed as int

  my $numeric_username = '54321';
  my $response = $xrc->createUser( $clientID,
                                   [],
                                   string($numeric_username),
                                   'password'
                                 );
  die $response->error unless $response->is_success;
  my $uid = $response->content;
  print "$numeric_username created: uid $uid\n";

  # setUserPassword

  $response = $src->setUserPassword( $clientID, 'username', 'new_password' );
  if ( $response->is_success ) {
    print "password change sucessful";
  } else {
    print "error changing password: ". $response->error;
  }

  # suspendUser

  $response = $src->suspendUser( $clientID, 'username' );
  if ( $response->is_success ) {
    print "user suspended";
  } else {
    print "error suspending user: ". $response->error;
  }

  # unsuspendUser

  $response = $src->unsuspendUser( $clientID, 'username' );
  if ( $response->is_success ) {
    print "user unsuspended";
  } else {
    print "error unsuspending user: ". $response->error;
  }

  # deleteUser

  $response = $src->deleteUser( $clientID, 'username' );
  if ( $response->is_success ) {
    print "user deleted";
  } else {
    print "error deleting user: ". $response->error;
  }

DESCRIPTION ^

This module implements a client interface to Everyone.net's XRC Remote API, enabling a perl application to talk to Everyone.net's XRC server. This documentation assumes that you are familiar with the XRC documentation available from Everyone.net (XRC-1.0.5.html or later).

A new Net::XRC object must be created with the new method. Once this has been done, all XRC commands are accessed via method calls on the object.

METHODS ^

new OPTION => VALUE ...

Creates a new Net::XRC object. The clientID and password options are required.

AUTOLOADed methods

All XRC methods are available. See the XRC documentation for methods, arguments and return values.

Responses are returned as Net::XRC::Response objects. See Net::XRC::Response.

XRC int arguments are auto-recognized as numeric perl scalars.

XRC string arguments are auto-recognized as all other perl scalars, or you can import and use the string() subroutine to ensure your string is not mistaken as an int.

XRC null are auto-recognized as undefined ("undef") perl scalars.

XRC boolean arguements must be explicitly specified as boolean().

XRC bytes arguments must be explicitly specified as bytes().

XRC list arguments are passed and returned as perl array references.

XRC complex arguments are passed and returned as perl hash references, with an additional _type key denotating the argument type (AliasInfo, EmailClientSummary, WebmailPresentation, Letter). Optionally, you may use the complex() subroutine to construct them, as in: complex('typename', \%hash).

BUGS ^

Needs better documentation.

Data type auto-guessing can get things wrong for all-numeric strings. bool and bytes types must be specified explicitly. Ideally each method should have a type signature so manually specifying data types would never be necessary.

The "complex" data types (AliasInfo, EmailClientSummary, WebmailPresentation, Letter) are untested.

SEE ALSO ^

Net::XRC::Response, Everyone.net XRC Remote API documentation (XRC-1.0.5.html or later)

AUTHOR ^

Ivan Kohler <ivan-xrc@420.am>

COPYRIGHT AND LICENSE ^

Copyright (C) 2005 Ivan Kohler

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

syntax highlighting: