The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.