Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
rename to ::Extension::NetworkedHelpDesk
  • Loading branch information
ruz committed Nov 4, 2011
1 parent fce47f2 commit fe51dcc
Show file tree
Hide file tree
Showing 11 changed files with 57 additions and 57 deletions.
2 changes: 1 addition & 1 deletion META.yml
Expand Up @@ -13,7 +13,7 @@ license: gpl
meta-spec: meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4 version: 1.4
name: RT-Extension-NHD name: RT-Extension-NetworkedHelpDesk
no_index: no_index:
directory: directory:
- etc - etc
Expand Down
6 changes: 3 additions & 3 deletions Makefile.PL
@@ -1,7 +1,7 @@
use inc::Module::Install; use inc::Module::Install;


RTx('RT-Extension-NHD'); RTx('RT-Extension-NetworkedHelpDesk');
all_from('lib/RT/Extension/NHD.pm'); all_from('lib/RT/Extension/NetworkedHelpDesk.pm');
#readme_from('lib/RT/Extension/NHD.pm'); readme_from('lib/RT/Extension/NetworkedHelpDesk.pm');


WriteAll; WriteAll;
32 changes: 16 additions & 16 deletions html/NoAuth/NHD/1.0/agreements/dhandler
Expand Up @@ -8,52 +8,52 @@ $status => undef
</%ARGS> </%ARGS>
<%INIT> <%INIT>
my $duuid = $m->dhandler_arg; my $duuid = $m->dhandler_arg;
unless ( RT::Extension::NHD->CheckUUID( $duuid ) ) { unless ( RT::Extension::NetworkedHelpDesk->CheckUUID( $duuid ) ) {
return RT::Extension::NHD->BadWebRequest( return RT::Extension::NetworkedHelpDesk->BadWebRequest(
'Unprocessable Entity', 'Unprocessable Entity',
"Value in the URI isn't a UUID" "Value in the URI isn't a UUID"
); );
} }


my $action = RT::Extension::NHD->WebRequestAction; my $action = RT::Extension::NetworkedHelpDesk->WebRequestAction;
return RT::Extension::NHD->BadWebRequest('Method Not Allowed') return RT::Extension::NetworkedHelpDesk->BadWebRequest('Method Not Allowed')
unless $action; unless $action;


if ( $action ne 'create' ) { if ( $action ne 'create' ) {
$ARGS{'uuid'} = $uuid ||= $duuid; $ARGS{'uuid'} = $uuid ||= $duuid;
} elsif ( ($uuid||'') ne $duuid ) { } elsif ( ($uuid||'') ne $duuid ) {
return RT::Extension::NHD->BadWebRequest( return RT::Extension::NetworkedHelpDesk->BadWebRequest(
'Unprocessable Entity', 'Unprocessable Entity',
"UUIDs in the URI and body don't match" "UUIDs in the URI and body don't match"
); );
} }


my $token = $r->headers_in->{'X-Ticket-Sharing-Token'}; my $token = $r->headers_in->{'X-Ticket-Sharing-Token'};
return RT::Extension::NHD->BadWebRequest('Unauthorized') return RT::Extension::NetworkedHelpDesk->BadWebRequest('Unauthorized')
unless $token; unless $token;


my $agreement = RT::NHD::Agreement->new( RT->SystemUser ); my $agreement = RT::NHD::Agreement->new( RT->SystemUser );
$agreement->Load( $uuid ); $agreement->Load( $uuid );


if ( $action eq 'create' && $agreement->id ) { if ( $action eq 'create' && $agreement->id ) {
return RT::Extension::NHD->BadWebRequest( return RT::Extension::NetworkedHelpDesk->BadWebRequest(
'Unprocessable Entity', 'Unprocessable Entity',
"Couldn't create an agreement: record already exists" "Couldn't create an agreement: record already exists"
); );
} }
elsif ( $action ne 'create' ) { elsif ( $action ne 'create' ) {
return RT::Extension::NHD->BadWebRequest('Not Found') return RT::Extension::NetworkedHelpDesk->BadWebRequest('Not Found')
unless $agreement->id; unless $agreement->id;


if ( $token ne join ':', $agreement->UUID, $agreement->AccessKey ) { if ( $token ne join ':', $agreement->UUID, $agreement->AccessKey ) {
return RT::Extension::NHD->BadWebRequest('Forbidden') return RT::Extension::NetworkedHelpDesk->BadWebRequest('Forbidden')
} }
} }


my %data = %{ $agreement->FromJSON( \%ARGS ) }; my %data = %{ $agreement->FromJSON( \%ARGS ) };


my ($user, $msg) = $agreement->LoadOrCreateUser( %data ); my ($user, $msg) = $agreement->LoadOrCreateUser( %data );
return RT::Extension::NHD->BadWebRequest( return RT::Extension::NetworkedHelpDesk->BadWebRequest(
'Unprocessable Entity', 'Unprocessable Entity',
"Couldn't create user: $msg" "Couldn't create user: $msg"
) unless $user; ) unless $user;
Expand All @@ -63,26 +63,26 @@ $agreement->CurrentUser( RT::CurrentUser->new( $user ) );
if ( $agreement->id ) { if ( $agreement->id ) {


if ( $action eq 'show' ) { if ( $action eq 'show' ) {
return RT::Extension::NHD->WebSendJSON( $agreement->ForJSON ); return RT::Extension::NetworkedHelpDesk->WebSendJSON( $agreement->ForJSON );
} }
elsif ( $action eq 'update' ) { elsif ( $action eq 'update' ) {
my ($status, $msg) = $agreement->Update( %data ); my ($status, $msg) = $agreement->Update( %data );
unless ( $status ) { unless ( $status ) {
RT->Logger->error("Couldn't update NHD agreement: $msg"); RT->Logger->error("Couldn't update NHD agreement: $msg");
return RT::Extension::NHD->BadWebRequest('Unprocessable Entity'); return RT::Extension::NetworkedHelpDesk->BadWebRequest('Unprocessable Entity');
} }
return RT::Extension::NHD->GoodWebRequest; return RT::Extension::NetworkedHelpDesk->GoodWebRequest;
} }
else { else {
return RT::Extension::NHD->BadWebRequest; return RT::Extension::NetworkedHelpDesk->BadWebRequest;
} }
} }
else { else {
my ($status, $msg) = $agreement->Create( %data ); my ($status, $msg) = $agreement->Create( %data );
unless ( $status ) { unless ( $status ) {
RT->Logger->error("Couldn't create NHD agreement: $msg"); RT->Logger->error("Couldn't create NHD agreement: $msg");
return RT::Extension::NHD->BadWebRequest('Unprocessable Entity'); return RT::Extension::NetworkedHelpDesk->BadWebRequest('Unprocessable Entity');
} }
return RT::Extension::NHD->GoodWebRequest('Created'); return RT::Extension::NetworkedHelpDesk->GoodWebRequest('Created');
} }
</%INIT> </%INIT>
6 changes: 3 additions & 3 deletions html/NoAuth/NHD/1.0/autohandler
@@ -1,7 +1,7 @@
<%INIT> <%INIT>
my $version = $r->headers_in->{'X-Ticket-Sharing-Version'}; my $version = $r->headers_in->{'X-Ticket-Sharing-Version'};
if ( ($version||'') ne '1' ) { if ( ($version||'') ne '1' ) {
return RT::Extension::NHD->BadWebRequest('Precondition Failed'); return RT::Extension::NetworkedHelpDesk->BadWebRequest('Precondition Failed');
} }


my $ct = $r->headers_in->{'Content-Type'}; my $ct = $r->headers_in->{'Content-Type'};
Expand All @@ -15,8 +15,8 @@ if ( $method ne 'GET' && (!$ct || $ct =~ m{^text/x-json}) ) {
seek $input, 0, 0; seek $input, 0, 0;
my $content = do { local $/; <$input> }; my $content = do { local $/; <$input> };


$data = RT::Extension::NHD->FromJSON( $content ); $data = RT::Extension::NetworkedHelpDesk->FromJSON( $content );
return RT::Extension::NHD->BadWebRequest unless $data; return RT::Extension::NetworkedHelpDesk->BadWebRequest unless $data;
} }


$m->call_next( %$data ); $m->call_next( %$data );
Expand Down
Expand Up @@ -2,12 +2,12 @@ use 5.008003;
use strict; use strict;
use warnings; use warnings;


package RT::Extension::NHD; package RT::Extension::NetworkedHelpDesk;
our $VERSION = '0.01'; our $VERSION = '0.01';


=head1 NAME =head1 NAME
RT::Extension::NHD - Networked Help Desk protocol for Request Tracker RT::Extension::NetworkedHelpDesk - Networked Help Desk protocol for Request Tracker
=head1 DESCRIPTION =head1 DESCRIPTION
Expand Down Expand Up @@ -39,7 +39,7 @@ sub JSONRequest {
my ($method, $uri, %args) = @_; my ($method, $uri, %args) = @_;


my $data; my $data;
$data = RT::Extension::NHD->ToJSON( delete $args{'Data'} ) $data = RT::Extension::NetworkedHelpDesk->ToJSON( delete $args{'Data'} )
unless uc($method) eq 'GET'; unless uc($method) eq 'GET';
my %headers = %{ delete $args{'Headers'} || {} }; my %headers = %{ delete $args{'Headers'} || {} };
%headers = ( %headers = (
Expand Down
Expand Up @@ -4,7 +4,7 @@ use warnings;
### after: use lib qw(@RT_LIB_PATH@); ### after: use lib qw(@RT_LIB_PATH@);
use lib qw(/opt/rt4/local/lib /opt/rt4/lib); use lib qw(/opt/rt4/local/lib /opt/rt4/lib);


package RT::Extension::NHD::Test; package RT::Extension::NetworkedHelpDesk::Test;
use base 'RT::Test'; use base 'RT::Test';


sub import { sub import {
Expand All @@ -13,17 +13,17 @@ sub import {


$args{'requires'} ||= []; $args{'requires'} ||= [];
if ( $args{'testing'} ) { if ( $args{'testing'} ) {
unshift @{ $args{'requires'} }, 'RT::Extension::NHD'; unshift @{ $args{'requires'} }, 'RT::Extension::NetworkedHelpDesk';
} else { } else {
$args{'testing'} = 'RT::Extension::NHD'; $args{'testing'} = 'RT::Extension::NetworkedHelpDesk';
} }


$class->SUPER::import( %args ); $class->SUPER::import( %args );
$class->export_to_level(1); $class->export_to_level(1);


no strict 'subs'; no strict 'subs';
my $orig = \&RT::Extension::NHD::SendRequest; my $orig = \&RT::Extension::NetworkedHelpDesk::SendRequest;
*RT::Extension::NHD::SendRequest = sub { *RT::Extension::NetworkedHelpDesk::SendRequest = sub {
return $orig->(@_) if $_[1] && $_[1]->uri =~ RT->Config->Get('WebDomain'); return $orig->(@_) if $_[1] && $_[1]->uri =~ RT->Config->Get('WebDomain');


my $self = shift; my $self = shift;
Expand All @@ -34,18 +34,18 @@ sub import {


sub new_agent { sub new_agent {
my $self = shift; my $self = shift;
require RT::Extension::NHD::Test::Web; require RT::Extension::NetworkedHelpDesk::Test::Web;
return RT::Extension::NHD::Test::Web->new_agent( @_ ); return RT::Extension::NetworkedHelpDesk::Test::Web->new_agent( @_ );
} }


sub remote_requests { return RT::Extension::NHD::Test->get_objects_from_file('requests') } sub remote_requests { return RT::Extension::NetworkedHelpDesk::Test->get_objects_from_file('requests') }


sub set_next_remote_response { sub set_next_remote_response {
my $self = shift; my $self = shift;
my $code = shift; my $code = shift;
my %args = @_; my %args = @_;


my $msg = $args{'Message'} || $RT::Extension::NHD::HTTP_MESSAGE{ $code } my $msg = $args{'Message'} || $RT::Extension::NetworkedHelpDesk::HTTP_MESSAGE{ $code }
|| die "no message for code $code"; || die "no message for code $code";


my %headers = %{ $args{'Headers'} || {} }; my %headers = %{ $args{'Headers'} || {} };
Expand All @@ -54,9 +54,9 @@ sub set_next_remote_response {
'X-Ticket-Sharing-Version' => '1', 'X-Ticket-Sharing-Version' => '1',
); );
my $content = $args{'Data'}; my $content = $args{'Data'};
$content = RT::Extension::NHD->ToJSON( $content ) $content = RT::Extension::NetworkedHelpDesk->ToJSON( $content )
if ref $content; if ref $content;
RT::Extension::NHD::Test->push_object_into_file( responses => HTTP::Response->new( RT::Extension::NetworkedHelpDesk::Test->push_object_into_file( responses => HTTP::Response->new(
$code, $msg, [%headers], $content, $code, $msg, [%headers], $content,
) ); ) );
return; return;
Expand Down
@@ -1,10 +1,10 @@
use strict; use strict;
use warnings; use warnings;


package RT::Extension::NHD::Test::Web; package RT::Extension::NetworkedHelpDesk::Test::Web;
use base qw(RT::Test::Web); use base qw(RT::Test::Web);


require RT::Extension::NHD::Test; require RT::Extension::NetworkedHelpDesk::Test;
require Test::More; require Test::More;


sub new_agent { sub new_agent {
Expand All @@ -20,7 +20,7 @@ sub json_request {
my $self = shift; my $self = shift;
my ($method, $uri, %args) = @_; my ($method, $uri, %args) = @_;
$uri = $self->rt_base_url .'NoAuth/NHD/1.0'. $uri; $uri = $self->rt_base_url .'NoAuth/NHD/1.0'. $uri;
RT::Extension::NHD->JSONRequest( $method, $uri, %args ); RT::Extension::NetworkedHelpDesk->JSONRequest( $method, $uri, %args );
} }


1; 1;
10 changes: 5 additions & 5 deletions lib/RT/NHD/Agreement.pm
Expand Up @@ -14,7 +14,7 @@ sub Table {'NHDAgreements'}
sub Load { sub Load {
my $self = shift; my $self = shift;
my $value = shift; my $value = shift;
if ( RT::Extension::NHD->CheckUUID($value) ) { if ( RT::Extension::NetworkedHelpDesk->CheckUUID($value) ) {
return $self->LoadByCols( @_, UUID => $value ); return $self->LoadByCols( @_, UUID => $value );
} }
return $self->SUPER::Load( $value, @_ ); return $self->SUPER::Load( $value, @_ );
Expand Down Expand Up @@ -157,11 +157,11 @@ sub Send {
return (0, 'We are neither sender nor receiver') return (0, 'We are neither sender nor receiver')
unless $recipient; unless $recipient;


my $method = RT::Extension::NHD->ActionToWebMethod( $action ); my $method = RT::Extension::NetworkedHelpDesk->ActionToWebMethod( $action );
return (0, "Unknown action '$action'") return (0, "Unknown action '$action'")
unless $method; unless $method;


my $response = RT::Extension::NHD->JSONRequest( my $response = RT::Extension::NetworkedHelpDesk->JSONRequest(
$method => $self->$recipient() .'/agreements/'. $self->UUID, $method => $self->$recipient() .'/agreements/'. $self->UUID,
Headers => { Headers => {
'X-Ticket-Sharing-Token' => $self->UUID .':'. $self->AccessKey, 'X-Ticket-Sharing-Token' => $self->UUID .':'. $self->AccessKey,
Expand Down Expand Up @@ -243,8 +243,8 @@ sub LoadOrCreateUser {
return ($user, 'Created'); return ($user, 'Created');
} }


sub ValidateUUID { return RT::Extension::NHD->CheckUUID( $_[1] ) } sub ValidateUUID { return RT::Extension::NetworkedHelpDesk->CheckUUID( $_[1] ) }
sub ValidateAccessKey { return RT::Extension::NHD->CheckUUID( $_[1] ) } sub ValidateAccessKey { return RT::Extension::NetworkedHelpDesk->CheckUUID( $_[1] ) }


sub ValidateStatus { sub ValidateStatus {
my $self = shift; my $self = shift;
Expand Down
10 changes: 5 additions & 5 deletions t/api/agreement.t
Expand Up @@ -3,12 +3,12 @@
use strict; use strict;
use warnings; use warnings;


use RT::Extension::NHD::Test tests => 58; use RT::Extension::NetworkedHelpDesk::Test tests => 58;
my $test = 'RT::Extension::NHD::Test'; my $test = 'RT::Extension::NetworkedHelpDesk::Test';


use Digest::SHA1 qw(sha1_hex); use Digest::SHA1 qw(sha1_hex);


use_ok 'RT::Extension::NHD'; use_ok 'RT::Extension::NetworkedHelpDesk';


{ {
my $agreement = RT::NHD::Agreement->new( RT->SystemUser ); my $agreement = RT::NHD::Agreement->new( RT->SystemUser );
Expand Down Expand Up @@ -196,7 +196,7 @@ my $i = 0;
$agreement->UUID .':'. $agreement->AccessKey; $agreement->UUID .':'. $agreement->AccessKey;
is lc $requests[0]->header('Content-Type'), 'text/x-json; charset="utf-8"'; is lc $requests[0]->header('Content-Type'), 'text/x-json; charset="utf-8"';
is_deeply( is_deeply(
RT::Extension::NHD->FromJSON( $requests[0]->content ), RT::Extension::NetworkedHelpDesk->FromJSON( $requests[0]->content ),
$agreement->ForJSON, $agreement->ForJSON,
); );


Expand All @@ -222,7 +222,7 @@ my $i = 0;
}; };
is lc $requests[0]->header('Content-Type'), 'text/x-json; charset="utf-8"'; is lc $requests[0]->header('Content-Type'), 'text/x-json; charset="utf-8"';
is_deeply( is_deeply(
RT::Extension::NHD->FromJSON( $requests[0]->content ), RT::Extension::NetworkedHelpDesk->FromJSON( $requests[0]->content ),
$agreement->ForJSON( Fields => ['Name', 'AccessKey'] ), $agreement->ForJSON( Fields => ['Name', 'AccessKey'] ),
); );
} }
Expand Down
8 changes: 4 additions & 4 deletions t/rest/agreement.t
Expand Up @@ -3,12 +3,12 @@
use strict; use strict;
use warnings; use warnings;


use RT::Extension::NHD::Test tests => 18; use RT::Extension::NetworkedHelpDesk::Test tests => 18;
use Digest::SHA1 qw(sha1_hex); use Digest::SHA1 qw(sha1_hex);


RT::Extension::NHD::Test->started_ok; RT::Extension::NetworkedHelpDesk::Test->started_ok;


my $m = RT::Extension::NHD::Test->new_agent; my $m = RT::Extension::NetworkedHelpDesk::Test->new_agent;


my $i = 0; my $i = 0;
{ {
Expand Down Expand Up @@ -59,7 +59,7 @@ my $i = 0;
); );
is( $response->code, 200, 'got agreement' ); is( $response->code, 200, 'got agreement' );
is_deeply( is_deeply(
RT::Extension::NHD->FromJSON( $response->content ), RT::Extension::NetworkedHelpDesk->FromJSON( $response->content ),
{ {
uuid => $uuid, uuid => $uuid,
name => 'Test Company', name => 'Test Company',
Expand Down
6 changes: 3 additions & 3 deletions t/web/agreement.t
Expand Up @@ -3,8 +3,8 @@
use strict; use strict;
use warnings; use warnings;


use RT::Extension::NHD::Test tests => 18; use RT::Extension::NetworkedHelpDesk::Test tests => 18;
my $test = 'RT::Extension::NHD::Test'; my $test = 'RT::Extension::NetworkedHelpDesk::Test';
use Digest::SHA1 qw(sha1_hex); use Digest::SHA1 qw(sha1_hex);


my $org = 'Cool Company Sharing Tickets'; my $org = 'Cool Company Sharing Tickets';
Expand Down Expand Up @@ -40,7 +40,7 @@ my $remote_url = 'http://hoster.example.com/sharing';
$agreement->UUID .':'. $agreement->AccessKey; $agreement->UUID .':'. $agreement->AccessKey;
is lc $requests[0]->header('Content-Type'), 'text/x-json; charset="utf-8"'; is lc $requests[0]->header('Content-Type'), 'text/x-json; charset="utf-8"';
is_deeply( is_deeply(
RT::Extension::NHD->FromJSON( $requests[0]->content ), RT::Extension::NetworkedHelpDesk->FromJSON( $requests[0]->content ),
$agreement->ForJSON, $agreement->ForJSON,
); );
} }
Expand Down

0 comments on commit fe51dcc

Please sign in to comment.