NAME

Net::OpenXchange - Object-oriented interface to OpenXchange groupware

VERSION

version 0.001

SYNOPSIS

Net::OpenXchange is new and very unfinished code. Its coverage of the OX API actions, objects and attributes is limited. However it already proved useful, so I decided to release this early experimental version. If you choose to use it, I would really appreciate bug reports, with or without attached patches :-) I'd also welcome help adding support for more parts of the OpenXchange API.

Net::OpenXchange is the frontend to all packages of Net::OpenXchange.

use Modern::Perl;
use Net::OpenXchange;
use DateTime::Format::Mail;

my $ox = Net::OpenXchange->new(
    uri      => 'https://ox.example.org/ajax',
    login    => 'myuser',
    password => 'mypassword',
);

my $folder = $ox->folder->resolve_path('Public folders', 'Calendar');
my @appointments = $ox->calendar->all(
    folder => $folder,
    start  => DateTime->new(year => 2010, month =>  1, day =>  1),
    end    => DateTime->new(year => 2010, month => 12, day => 31),
);

foreach (@appointments) {
    say 'Start: ', DateTime::Format::Mail->format_datetime($_->start_date);
    say 'End: ',   DateTime::Format::Mail->format_datetime($_->end_date);
    say 'Title: ', $_->title;
    say '';
}

Net::OpenXchange connects to the server when creating an object instance and disconnects on object destruction. All errors are raised as exceptions.

All Net::OpenXchange::Module::* packages are available as attributes on this class - for example Net::OpenXchange::Module::Folder becomes $ox->folder. See the documentation for these packages.

ATTRIBUTES

uri

Required constructor argument. URI to the HTTP API of your OpenXchange server. Please note you have to add the /ajax manually.

login

Required constructor argument. Username to log into OpenXchange.

password

Required constructor argument. Password to log into OpenXchange.

conn

Read-only. An instance of Net::OpenXchange::Connection. You will not have to use this directly.

calendar

Read-only. An instance of Net::OpenXchange::Module::Calendar. See its documentation for provided methods.

contact

Read-only. An instance of Net::OpenXchange::Module::Contact. See its documentation for provided methods.

folder

Read-only. An instance of Net::OpenXchange::Module::Folder. See its documentation for provided methods.

user

Read-only. An instance of Net::OpenXchange::Module::User. See its documentation for provided methods.

METHODS

new

my $ox = Net::OpenXchange->new(
    uri      => "https://ox.example.com/ajax",
    login    => $username,
    password => $password,
);

Connect to OpenXchange server.

AUTHOR

Maximilian Gass <maximilian.gass@credativ.de>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Maximilian Gass.

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