Kayako::RestAPI - Perl library for working with Kayako REST API
version 0.02
use Kayako::RestAPI; my $kayako_api = Kayako::RestAPI->new({ "api_url" => '', "api_key" => '', "secret_key" => '' }, { content_key => 'text', pretty => 1, attribute_prefix => 'attr_' }); $kayako_api->get($route, $params); # $params is optional hashref $kayako_api->post($route, $params); $kayako_api->put($route, $params); $kayako_api->delete($route, $params); $kayako_api->get('/Base/Department'); # list of all departements my $ticket_id = 1000; $kayako_api->get_ticket_xml($ticket_id); $kayako_api->get_ticket_hash($ticket_id); $kayako_api->create_ticket({ subject => 'Test ticket', fullname => 'Pavel Serikov', email => 'someuser@gmail.com', contents => 'Hello, world!', departmentid => 5, ticketstatusid => 4, ticketpriorityid => 1, tickettypeid => 5, autouserid => 1 });
You can test you controller with API Test Controller
Convert xml API response to hash using XML::XML2JSON::xml2obj method
my $xml = $kayako_api->get('/Some/Endpoint'); my $hash = $kayako_api->xml2obj($xml);
Can potentially crash is returned xml isn't valid (when XML::XML2JSON dies)
Wrapper under abstract GET API query, return hash
$kayako_api->get_hash('/Some/API/Endpoint');
Get info about ticket in native XML
$kayako_api->get_ticket_xml($ticket_id);
$kayako_api->get_ticket_hash($ticket_id);
$kayako_api->change_ticket_owner($ticket_id, $new_owner_id);
$kayako_api->make_unassigned($ticket_id);
equalent to
$kayako_api->change_ticket_owner($ticket_id, 0);
Check a list of required arguments here: https://kayako.atlassian.net/wiki/display/DEV/REST+-+Ticket#REST-Ticket-POST/Tickets/Ticket
Filter fields of API request result
By default leave only id, title and module fields
$kayako_api->filter_fields($arrayref);
$kayako_api->get_departements(); # return an arrayref
$kayako_api->get_ticket_statuses();
Return an arrayref of hashes with title and id keys like
[ { 'title' => 'In progress', 'id' => '1' }, { 'title' => 'Closed', 'id' => '3' }, { 'id' => '4', 'title' => 'New' } ]
$kayako_api->get_ticket_priorities();
[ { 'title' => 'Normal', 'id' => '1' }, { 'id' => '3', 'title' => 'Urgent' }, ]
$kayako_api->get_ticket_types();
[ { 'id' => '1', 'title' => 'Case' }, { 'id' => '3', 'title' => 'Bug' }, { 'id' => '5', 'title' => 'Feedback' } ];
See more:
$kayako_api->get_staff();
Return an arrayref of hashes with keys like firstname, lastname, username etc.
E.g.
[ { ... }, { 'id' => { 'text' => '12' }, 'firstname' => { 'text' => 'Pavel' }, 'email' => { 'text' => 'pavelsr@cpan.org' }, 'lastname' => { 'text' => 'Serikov' }, 'enabledst' => { 'text' => '0'}, 'username' => { 'text' => 'pavelsr' }, 'isenabled' => { 'text' => '1' }, 'staffgroupid' => { 'text' => '4' }, 'greeting' => {}, 'timezone' => {}, 'designation' => { 'text' => 'TS' }, 'mobilenumber' => {}, 'signature' => {}, 'fullname' => { 'text' => 'Pavel Serikov' } } ]
Pavel Serikov <pavelsr@cpan.org>
This software is copyright (c) 2016 by Pavel Serikov.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Kayako::RestAPI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Kayako::RestAPI
CPAN shell
perl -MCPAN -e shell install Kayako::RestAPI
For more information on module installation, please visit the detailed CPAN module installation guide.