Kayako::RestAPI - Perl library for working with Kayako REST API. Tested with
version 0.07
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
Attention: since version 0.06 (migration from XML::XML2JSON to XML::LibXML::Simple) response structure of following methods was changed from array to hash
get_ticket_hash get_departements get_ticket_statuses get_ticket_priorities get_ticket_types
If you need to use old structure please add _old suffix to method ;)
WORK UNDER THIS MODULE IS IN PROGRESS, HELP WANTED, ESPECIALLY FOR WRITING DOCS
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)
Get latest result from user agent. For debug purpose
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
THIS METHOD LEFT HERE FOR COMPATIBILITY AND WILL BE REMOVED IN FUTURE RELEASES
Filter fields of API request result and trim content_key added by XML::XML2JSON
By default leave only id, title and module fields
my $arrayref = $kayako_api->get_hash('/Some/API/Endpoint'); $kayako_api->filter_fields($arrayref);
$kayako_api->get_departements();
Return an arrayref of hashes with title, module and id keys like
[ { 'module' => 'tickets', 'title' => 'Hard drives department', 'id' => '5' }, { 'id' => '6', 'module' => 'tickets', 'title' => 'Flash drives department' } ]
API endpoint is /Base/Department/
$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' } ]
API endpoint is /Tickets/TicketStatus/
$kayako_api->get_ticket_priorities();
[ { 'title' => 'Normal', 'id' => '1' }, { 'id' => '3', 'title' => 'Urgent' }, ]
API endpoint is /Tickets/TicketPriority/
$kayako_api->get_ticket_types();
[ { 'id' => '1', 'title' => 'Case' }, { 'id' => '3', 'title' => 'Bug' }, { 'id' => '5', 'title' => 'Feedback' } ];
API endpoint is /Tickets/TicketType/
$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' } } ]
API endpoint is /Base/Staff/
Pavel Serikov <pavelsr@cpan.org>
This software is copyright (c) 2018 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.