[Bps-public-commit] rt-extension-rest2 branch, master, updated. 1.01-12-g8062b56
Jim Brandt
jbrandt at bestpractical.com
Fri Mar 16 11:41:25 EDT 2018
The branch, master has been updated
via 8062b56059407f49694aea54de20257e79de6b9f (commit)
via 40e22e4ec9efcdfca473cba7be83a83412055c5d (commit)
via d17e787bff76646cadeb46ab1f0bac5c538cb298 (commit)
via 9c6902e478f7709e6f3726bec184e98befbcce47 (commit)
via 29a8ab868bcd21124fca2615abecce9842a0eed2 (commit)
via a5e832fca39271040533db348ac71cf12a1a481e (commit)
via 8859c4ea2ed83f49ff3f52a369ffb0669c8e29be (commit)
via d550f87d3237ddaf168a79f80a454fab4bb159f3 (commit)
from 8e34b33fe3e1c6ad45f6ad4ef4442f82df09d787 (commit)
Summary of changes:
Changes | 4 +
MANIFEST | 4 +-
META.yml | 6 +-
README | 26 +++
inc/Module/Install.pm | 2 +-
inc/Module/Install/Base.pm | 2 +-
inc/Module/Install/Can.pm | 2 +-
inc/Module/Install/Fetch.pm | 2 +-
inc/Module/Install/Include.pm | 2 +-
inc/Module/Install/Makefile.pm | 2 +-
inc/Module/Install/Metadata.pm | 2 +-
inc/Module/Install/RTx.pm | 2 +-
inc/Module/Install/RTx/Runtime.pm | 1 +
inc/Module/Install/Win32.pm | 2 +-
inc/Module/Install/WriteAll.pm | 2 +-
lib/RT/Extension/REST2.pm | 29 +++-
lib/RT/Extension/REST2/Resource/Record/Writable.pm | 7 +-
lib/RT/Extension/REST2/Resource/TicketsBulk.pm | 76 +++++++++
t/tickets-bulk.t | 190 +++++++++++++++++++++
19 files changed, 345 insertions(+), 18 deletions(-)
create mode 100644 lib/RT/Extension/REST2/Resource/TicketsBulk.pm
create mode 100644 t/tickets-bulk.t
- Log -----------------------------------------------------------------
commit d550f87d3237ddaf168a79f80a454fab4bb159f3
Author: sunnavy <sunnavy at bestpractical.com>
Date: Wed Feb 28 03:46:39 2018 +0800
don't touch http response in update_record
It's more consistent to handle http response in update_resource just
like create_resource. And it's also easier to reuse update_record.
diff --git a/lib/RT/Extension/REST2/Resource/Record/Writable.pm b/lib/RT/Extension/REST2/Resource/Record/Writable.pm
index e0d1128..490e2be 100644
--- a/lib/RT/Extension/REST2/Resource/Record/Writable.pm
+++ b/lib/RT/Extension/REST2/Resource/Record/Writable.pm
@@ -57,8 +57,7 @@ sub update_record {
# XXX TODO: Figure out how to return success/failure? Core RT::Record's
# ->Update will need to be replaced or improved.
- $self->response->body( JSON::encode_json(\@results) );
- return;
+ return @results;
}
sub _update_custom_fields {
@@ -259,7 +258,9 @@ sub update_resource {
\404, "Resource does not exist; use POST to create");
}
- return $self->update_record($data);
+ my @results = $self->update_record($data);
+ $self->response->body( JSON::encode_json(\@results) );
+ return;
}
sub create_record {
commit 8859c4ea2ed83f49ff3f52a369ffb0669c8e29be
Author: sunnavy <sunnavy at bestpractical.com>
Date: Wed Feb 28 03:55:03 2018 +0800
implement /tickets/bulk for bulk create/update
diff --git a/lib/RT/Extension/REST2/Resource/TicketsBulk.pm b/lib/RT/Extension/REST2/Resource/TicketsBulk.pm
new file mode 100644
index 0000000..c9f1f2a
--- /dev/null
+++ b/lib/RT/Extension/REST2/Resource/TicketsBulk.pm
@@ -0,0 +1,76 @@
+package RT::Extension::REST2::Resource::TicketsBulk;
+use strict;
+use warnings;
+
+use Moose;
+use namespace::autoclean;
+
+extends 'RT::Extension::REST2::Resource';
+with 'RT::Extension::REST2::Resource::Role::RequestBodyIsJSON' =>
+ { type => 'ARRAY' };
+
+use RT::Extension::REST2::Util qw(expand_uid);
+use RT::Extension::REST2::Resource::Ticket;
+use JSON ();
+
+sub dispatch_rules {
+ Path::Dispatcher::Rule::Regex->new( regex => qr{^/tickets/bulk/?$} );
+}
+
+sub post_is_create { 1 }
+sub create_path { '/tickets/bulk' }
+sub charsets_provided { [ 'utf-8' ] }
+sub default_charset { 'utf-8' }
+sub allowed_methods { [ 'PUT', 'POST' ] }
+
+sub content_types_provided { [ { 'application/json' => sub {} } ] }
+sub content_types_accepted { [ { 'application/json' => 'from_json' } ] }
+
+sub from_json {
+ my $self = shift;
+ my $params = JSON::decode_json( $self->request->content );
+
+ my $method = $self->request->method;
+ my @results;
+ if ( $method eq 'PUT' ) {
+ for my $param ( @$params ) {
+ my $id = delete $param->{id};
+ if ( $id && $id =~ /^\d+$/ ) {
+ my $resource = RT::Extension::REST2::Resource::Ticket->new(
+ request => $self->request,
+ response => $self->response,
+ record_class => 'RT::Ticket',
+ record_id => $id,
+ );
+ if ( $resource->resource_exists ) {
+ push @results, [ $id, $resource->update_record( $param ) ];
+ next;
+ }
+ }
+ push @results, [ $id, 'Resource does not exist' ];
+ }
+ }
+ else {
+ for my $param ( @$params ) {
+ my $resource = RT::Extension::REST2::Resource::Ticket->new(
+ request => $self->request,
+ response => $self->response,
+ record_class => 'RT::Ticket',
+ );
+ my ( $ok, $msg ) = $resource->create_record( $param );
+ if ( ref( $ok ) || !$ok ) {
+ push @results, { message => $msg || "Create failed for unknown reason" };
+ }
+ else {
+ push @results, expand_uid( $resource->record->UID );
+ }
+ }
+ }
+
+ $self->response->body( JSON::encode_json( \@results ) );
+ return;
+}
+
+__PACKAGE__->meta->make_immutable;
+
+1;
commit a5e832fca39271040533db348ac71cf12a1a481e
Author: sunnavy <sunnavy at bestpractical.com>
Date: Wed Feb 28 05:17:47 2018 +0800
tests for /tickets/bulk
diff --git a/t/tickets-bulk.t b/t/tickets-bulk.t
new file mode 100644
index 0000000..a3ecbed
--- /dev/null
+++ b/t/tickets-bulk.t
@@ -0,0 +1,190 @@
+use strict;
+use warnings;
+use lib 't/lib';
+use RT::Extension::REST2::Test tests => undef;
+use Test::Deep;
+
+my $mech = RT::Extension::REST2::Test->mech;
+
+my $auth = RT::Extension::REST2::Test->authorization_header;
+my $rest_base_path = '/REST/2.0';
+my $user = RT::Extension::REST2::Test->user;
+my $base_url = RT::Extension::REST2->base_uri;
+
+my $queue = RT::Test->load_or_create_queue( Name => "General" );
+
+my @ticket_ids;
+
+{
+ my $res = $mech->post_json(
+ "$rest_base_path/tickets/bulk",
+ { Queue => "General", Subject => "test" },
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 400 );
+ is( $mech->json_response->{message}, "JSON object must be a ARRAY", 'hash is not allowed' );
+
+ diag "no CreateTicket right";
+
+ $res = $mech->post_json(
+ "$rest_base_path/tickets/bulk",
+ [ { Queue => "General", Subject => "test" } ],
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 201, "bulk returns 201 for POST even no tickets created" );
+ is_deeply(
+ $mech->json_response,
+ [
+ {
+ message => "No permission to create tickets in the queue 'General'"
+ }
+ ],
+ 'permission denied'
+ );
+
+ diag "grant CreateTicket right";
+ $user->PrincipalObj->GrantRight( Right => 'CreateTicket' );
+
+ $res = $mech->post_json(
+ "$rest_base_path/tickets/bulk",
+ [ { Queue => "General", Subject => "test" } ],
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 201, 'status code' );
+ my $content = $mech->json_response;
+ is( scalar @$content, 1, 'array with 1 item' );
+ ok( $content->[ 0 ]{id}, 'found id' );
+ push @ticket_ids, $content->[ 0 ]{id};
+ is_deeply(
+ $content,
+ [
+ {
+ type => 'ticket',
+ id => $ticket_ids[ -1 ],
+ "_url" => "$base_url/ticket/$ticket_ids[-1]",
+ }
+ ],
+ 'json response content',
+ );
+
+ $res = $mech->post_json(
+ "$rest_base_path/tickets/bulk",
+ [ { Queue => 'General', Subject => 'foo' }, { Queue => 'General', Subject => 'bar' } ],
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 201, 'status code' );
+ $content = $mech->json_response;
+ is( scalar @$content, 2, 'array with 2 items' );
+ push @ticket_ids, $_->{id} for @$content;
+ is_deeply(
+ $content,
+ [
+ {
+ type => 'ticket',
+ id => $ticket_ids[ -2 ],
+ "_url" => "$base_url/ticket/$ticket_ids[-2]",
+ },
+ {
+ type => 'ticket',
+ id => $ticket_ids[ -1 ],
+ "_url" => "$base_url/ticket/$ticket_ids[-1]",
+ },
+ ],
+ 'json response content',
+ );
+
+ $res = $mech->post_json(
+ "$rest_base_path/tickets/bulk",
+ [ { Subject => 'foo' }, { Queue => 'General', Subject => 'baz' } ],
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 201, 'status code' );
+ $content = $mech->json_response;
+ is( scalar @$content, 2, 'array with 2 items' );
+
+ push @ticket_ids, $content->[ 1 ]{id};
+ is_deeply(
+ $content,
+ [
+ {
+ message => "Could not create ticket. Queue not set"
+ },
+ {
+ type => 'ticket',
+ id => $ticket_ids[ -1 ],
+ "_url" => "$base_url/ticket/$ticket_ids[-1]",
+ },
+ ],
+ 'json response content',
+ );
+}
+
+{
+ diag "no ModifyTicket right";
+ my $res = $mech->put_json(
+ "$rest_base_path/tickets/bulk",
+ [ { id => $ticket_ids[ 0 ], Subject => 'foo' } ],
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 200, "bulk returns 200 for PUT" );
+ is_deeply( $mech->json_response, [ [ $ticket_ids[ 0 ], "Ticket 1: Permission Denied", ] ], 'permission denied' );
+
+ diag "grant ModifyTicket right";
+ $user->PrincipalObj->GrantRight( Right => 'ModifyTicket' );
+
+ $res = $mech->put_json(
+ "$rest_base_path/tickets/bulk",
+ [ { id => $ticket_ids[ 0 ], Subject => 'foo' } ],
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 200, 'status code' );
+ is_deeply(
+ $mech->json_response,
+ [ [ $ticket_ids[ 0 ], qq{Ticket 1: Subject changed from 'test' to 'foo'} ] ],
+ 'json response content'
+ );
+
+ $res = $mech->put_json(
+ "$rest_base_path/tickets/bulk",
+ [ { id => $ticket_ids[ 0 ] }, { id => $ticket_ids[ 1 ], Subject => 'bar' }, ],
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 200, 'status code' );
+ is_deeply(
+ $mech->json_response,
+ [
+ [ $ticket_ids[ 0 ] ], [ $ticket_ids[ 1 ], qq{Ticket $ticket_ids[ 1 ]: Subject changed from 'foo' to 'bar'} ]
+ ],
+ 'json response content'
+ );
+
+ $res = $mech->put_json(
+ "$rest_base_path/tickets/bulk",
+ [
+ { id => $ticket_ids[ 0 ], Subject => 'baz' },
+ { id => 'foo', Subject => 'baz' },
+ { id => 999, Subject => 'baz' },
+ ],
+ 'Authorization' => $auth,
+ );
+ is( $res->code, 200, 'status code' );
+ is_deeply(
+ $mech->json_response,
+ [
+ [ $ticket_ids[ 0 ], qq{Ticket $ticket_ids[ 0 ]: Subject changed from 'foo' to 'baz'} ],
+ [ 'foo', "Resource does not exist" ],
+ [ 999, "Resource does not exist" ],
+ ],
+ 'json response content'
+ );
+}
+
+{
+ for my $method ( qw/get head delete/ ) {
+ my $res = $mech->get( "$rest_base_path/tickets/bulk", 'Authorization' => $auth );
+ is( $res->code, 405, "tickets/bulk doesn't support " . uc $method );
+ }
+}
+
+done_testing;
+
commit 29a8ab868bcd21124fca2615abecce9842a0eed2
Author: sunnavy <sunnavy at bestpractical.com>
Date: Thu Mar 1 19:14:51 2018 +0800
document /tickets/bulk
diff --git a/README b/README
index aa3466a..9dfeefe 100644
--- a/README
+++ b/README
@@ -245,6 +245,12 @@ USAGE
GET /ticket/:id/history
retrieve list of transactions for ticket
+ POST /tickets/bulk
+ create multiple tickets; provide JSON content(array of hashes)
+
+ PUT /tickets/bulk
+ update multiple tickets' metadata; provide JSON content(array of hashes)
+
Transactions
GET /transactions?query=<JSON>
POST /transactions
diff --git a/lib/RT/Extension/REST2.pm b/lib/RT/Extension/REST2.pm
index b7e2a7b..0a36aef 100644
--- a/lib/RT/Extension/REST2.pm
+++ b/lib/RT/Extension/REST2.pm
@@ -280,6 +280,12 @@ controls available in response bodies rather than hardcoding URLs.
GET /ticket/:id/history
retrieve list of transactions for ticket
+ POST /tickets/bulk
+ create multiple tickets; provide JSON content(array of hashes)
+
+ PUT /tickets/bulk
+ update multiple tickets' metadata; provide JSON content(array of hashes)
+
=head3 Transactions
GET /transactions?query=<JSON>
commit 9c6902e478f7709e6f3726bec184e98befbcce47
Merge: 8e34b33 29a8ab8
Author: Jim Brandt <jbrandt at bestpractical.com>
Date: Fri Mar 16 10:06:40 2018 -0400
Merge branch 'tickets-bulk'
commit d17e787bff76646cadeb46ab1f0bac5c538cb298
Author: Jim Brandt <jbrandt at bestpractical.com>
Date: Fri Mar 16 11:33:22 2018 -0400
Add some curl examples for tickets
diff --git a/README b/README
index 9dfeefe..042cb5c 100644
--- a/README
+++ b/README
@@ -216,6 +216,9 @@ USAGE
Wherever possible please consider using _hyperlinks hypermedia controls
available in response bodies rather than hardcoding URLs.
+ For simplicity, the examples below omit the extra options to curl for
+ SSL like --cacert.
+
Tickets
GET /tickets?query=<TicketSQL>
search for tickets using TicketSQL
@@ -251,6 +254,23 @@ USAGE
PUT /tickets/bulk
update multiple tickets' metadata; provide JSON content(array of hashes)
+ Ticket Examples
+ Below are some examples using the endpoints above.
+
+ # Create a ticket, setting some custom fields
+ curl -X POST -H "Content-Type: application/json" -u 'root:password'
+ -d '{ "Queue": "General", "Subject": "Create ticket test",
+ "From": "user1 at example.com", "To": "rt at example.com",
+ "Content": "Testing a create",
+ "CustomFields": {"Severity": "Low"}}'
+ 'https://myrt.com/REST/2.0/ticket'
+
+ # Update a ticket, with a custom field update
+ curl -X PUT -H "Content-Type: application/json" -u 'root:password'
+ -d '{ "Subject": "Update test", "Content": "Testing an update",
+ "CustomFields": {"Severity": "High"}}'
+ 'https://myrt.com/REST/2.0/ticket/6'
+
Transactions
GET /transactions?query=<JSON>
POST /transactions
diff --git a/lib/RT/Extension/REST2.pm b/lib/RT/Extension/REST2.pm
index f59ef74..0998c08 100644
--- a/lib/RT/Extension/REST2.pm
+++ b/lib/RT/Extension/REST2.pm
@@ -250,6 +250,9 @@ Currently provided endpoints under C</REST/2.0/> are described below.
Wherever possible please consider using C<_hyperlinks> hypermedia
controls available in response bodies rather than hardcoding URLs.
+For simplicity, the examples below omit the extra options to
+curl for SSL like --cacert.
+
=head3 Tickets
GET /tickets?query=<TicketSQL>
@@ -286,6 +289,24 @@ controls available in response bodies rather than hardcoding URLs.
PUT /tickets/bulk
update multiple tickets' metadata; provide JSON content(array of hashes)
+=head3 Ticket Examples
+
+Below are some examples using the endpoints above.
+
+ # Create a ticket, setting some custom fields
+ curl -X POST -H "Content-Type: application/json" -u 'root:password'
+ -d '{ "Queue": "General", "Subject": "Create ticket test",
+ "From": "user1 at example.com", "To": "rt at example.com",
+ "Content": "Testing a create",
+ "CustomFields": {"Severity": "Low"}}'
+ 'https://myrt.com/REST/2.0/ticket'
+
+ # Update a ticket, with a custom field update
+ curl -X PUT -H "Content-Type: application/json" -u 'root:password'
+ -d '{ "Subject": "Update test", "Content": "Testing an update",
+ "CustomFields": {"Severity": "High"}}'
+ 'https://myrt.com/REST/2.0/ticket/6'
+
=head3 Transactions
GET /transactions?query=<JSON>
commit 40e22e4ec9efcdfca473cba7be83a83412055c5d
Author: Jim Brandt <jbrandt at bestpractical.com>
Date: Fri Mar 16 11:33:55 2018 -0400
Update Module::Install
diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm
index 07525c5..7ba98c2 100644
--- a/inc/Module/Install.pm
+++ b/inc/Module/Install.pm
@@ -31,7 +31,7 @@ BEGIN {
# This is not enforced yet, but will be some time in the next few
# releases once we can make sure it won't clash with custom
# Module::Install extensions.
- $VERSION = '1.18';
+ $VERSION = '1.19';
# Storage for the pseudo-singleton
$MAIN = undef;
diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm
index b61d424..9fa42c2 100644
--- a/inc/Module/Install/Base.pm
+++ b/inc/Module/Install/Base.pm
@@ -4,7 +4,7 @@ package Module::Install::Base;
use strict 'vars';
use vars qw{$VERSION};
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.19';
}
# Suspend handler for "redefined" warnings
diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm
index 1de368c..d65c753 100644
--- a/inc/Module/Install/Can.pm
+++ b/inc/Module/Install/Can.pm
@@ -8,7 +8,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.19';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm
index 54b52cb..3072b08 100644
--- a/inc/Module/Install/Fetch.pm
+++ b/inc/Module/Install/Fetch.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.19';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/Include.pm b/inc/Module/Install/Include.pm
index 087da8d..13fdcd0 100644
--- a/inc/Module/Install/Include.pm
+++ b/inc/Module/Install/Include.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.19';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm
index 8ba3d88..13a4464 100644
--- a/inc/Module/Install/Makefile.pm
+++ b/inc/Module/Install/Makefile.pm
@@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/;
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.19';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm
index 692ce71..11bf971 100644
--- a/inc/Module/Install/Metadata.pm
+++ b/inc/Module/Install/Metadata.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.19';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/RTx.pm b/inc/Module/Install/RTx.pm
index 3268e7e..7cad529 100644
--- a/inc/Module/Install/RTx.pm
+++ b/inc/Module/Install/RTx.pm
@@ -8,7 +8,7 @@ no warnings 'once';
use Module::Install::Base;
use base 'Module::Install::Base';
-our $VERSION = '0.39';
+our $VERSION = '0.40';
use FindBin;
use File::Glob ();
diff --git a/inc/Module/Install/RTx/Runtime.pm b/inc/Module/Install/RTx/Runtime.pm
index 937949f..ae07502 100644
--- a/inc/Module/Install/RTx/Runtime.pm
+++ b/inc/Module/Install/RTx/Runtime.pm
@@ -33,6 +33,7 @@ sub RTxDatabase {
my $lib_path = File::Basename::dirname($INC{'RT.pm'});
my @args = (
+ "-I.",
"-Ilib",
"-I$RT::LocalLibPath",
"-I$lib_path",
diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm
index b80c900..f7aa615 100644
--- a/inc/Module/Install/Win32.pm
+++ b/inc/Module/Install/Win32.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.19';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm
index da279c7..2db861a 100644
--- a/inc/Module/Install/WriteAll.pm
+++ b/inc/Module/Install/WriteAll.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.18';
+ $VERSION = '1.19';
@ISA = qw{Module::Install::Base};
$ISCORE = 1;
}
commit 8062b56059407f49694aea54de20257e79de6b9f
Author: Jim Brandt <jbrandt at bestpractical.com>
Date: Fri Mar 16 11:41:13 2018 -0400
Prep for 1.03 release
diff --git a/Changes b/Changes
index 6261e93..d3ace98 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,9 @@
Revision history for RT-Extension-REST2
+1.03 2018-03-16
+ - Add new bulk option for tickets
+ - Documentation updates
+
1.02 2017-12-22
- Add support for external links on tickets
diff --git a/MANIFEST b/MANIFEST
index c85b73e..bac4498 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -52,6 +52,7 @@ lib/RT/Extension/REST2/Resource/Root.pm
lib/RT/Extension/REST2/Resource/RT.pm
lib/RT/Extension/REST2/Resource/Ticket.pm
lib/RT/Extension/REST2/Resource/Tickets.pm
+lib/RT/Extension/REST2/Resource/TicketsBulk.pm
lib/RT/Extension/REST2/Resource/Transaction.pm
lib/RT/Extension/REST2/Resource/Transactions.pm
lib/RT/Extension/REST2/Resource/User.pm
@@ -65,9 +66,9 @@ t/asset-customfields.t
t/assets.t
t/catalogs.t
t/conflict.t
-t/lib/RT/Extension/REST2/Test.pm
t/lib/RT/Extension/REST2/Test.pm.in
t/not_found.t
+t/organization.t
t/queues.t
t/root.t
t/search-json.t
@@ -75,6 +76,7 @@ t/ticket-customfields.t
t/ticket-customroles.t
t/ticket-links.t
t/ticket-watchers.t
+t/tickets-bulk.t
t/tickets.t
t/transactions.t
t/user-customfields.t
diff --git a/META.yml b/META.yml
index 08d9896..f447a3c 100644
--- a/META.yml
+++ b/META.yml
@@ -11,7 +11,7 @@ configure_requires:
ExtUtils::MakeMaker: 6.59
distribution_type: module
dynamic_config: 1
-generated_by: 'Module::Install version 1.18'
+generated_by: 'Module::Install version 1.19'
license: gpl_2
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -43,6 +43,6 @@ requires:
perl: 5.10.1
resources:
license: http://opensource.org/licenses/gpl-license.php
-version: '1.02'
-x_module_install_rtx_version: '0.39'
+version: '1.03'
+x_module_install_rtx_version: '0.40'
x_requires_rt: 4.2.4
diff --git a/lib/RT/Extension/REST2.pm b/lib/RT/Extension/REST2.pm
index 0998c08..ee73b7d 100644
--- a/lib/RT/Extension/REST2.pm
+++ b/lib/RT/Extension/REST2.pm
@@ -4,7 +4,7 @@ use 5.010001;
package RT::Extension::REST2;
-our $VERSION = '1.02';
+our $VERSION = '1.03';
our $REST_PATH = '/REST/2.0';
use Plack::Builder;
-----------------------------------------------------------------------
More information about the Bps-public-commit
mailing list