aboutsummaryrefslogtreecommitdiffstats
path: root/t/open311/endpoint/Endpoint1.pm
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2016-08-26 15:05:30 +0100
committerMatthew Somerville <matthew-github@dracos.co.uk>2016-08-26 15:05:30 +0100
commit0e45fa27e4bc857f61b71f6c121a61e08e54cb6a (patch)
tree7e83c50825819b60a9a73f16c4d4f0a4ff247650 /t/open311/endpoint/Endpoint1.pm
parentc1178ea85d1879d6533ac09e2a3c813441554b43 (diff)
parenta09c61c807d8d6b50227c9d8aa687f1eb22bad00 (diff)
Merge branch 'stevenage-open311'
Diffstat (limited to 't/open311/endpoint/Endpoint1.pm')
-rw-r--r--t/open311/endpoint/Endpoint1.pm114
1 files changed, 0 insertions, 114 deletions
diff --git a/t/open311/endpoint/Endpoint1.pm b/t/open311/endpoint/Endpoint1.pm
deleted file mode 100644
index ae12172b8..000000000
--- a/t/open311/endpoint/Endpoint1.pm
+++ /dev/null
@@ -1,114 +0,0 @@
-package t::open311::endpoint::Endpoint1;
-use Web::Simple;
-extends 'Open311::Endpoint';
-use Types::Standard ':all';
-use MooX::HandlesVia;
-
-use Open311::Endpoint::Service;
-use t::open311::endpoint::ServiceType1;
-use Open311::Endpoint::Service::Attribute;
-use Open311::Endpoint::Service::Request;
-
-sub services {
- return (
- t::open311::endpoint::ServiceType1->new(
- service_code => 'POT',
- service_name => 'Pothole Repairs',
- description => 'Pothole Repairs Service',
- attributes => [
- Open311::Endpoint::Service::Attribute->new(
- code => 'depth',
- required => 1,
- datatype => 'number',
- datatype_description => 'an integer',
- description => 'depth of pothole, in centimetres',
- ),
- Open311::Endpoint::Service::Attribute->new(
- code => 'shape',
- required => 0,
- datatype => 'singlevaluelist',
- datatype_description => 'square | circle | triangle',
- description => 'shape of the pothole',
- values => {
- square => 'Square',
- circle => 'Circle',
- triangle => 'Triangle',
- },
- ),
- ],
- type => 'realtime',
- keywords => [qw/ deep hole wow/],
- group => 'highways',
- ),
- t::open311::endpoint::ServiceType1->new(
- service_code => 'BIN',
- service_name => 'Bin Enforcement',
- description => 'Bin Enforcement Service',
- attributes => [],
- type => 'realtime',
- keywords => [qw/ bin /],
- group => 'sanitation',
- )
- );
-}
-
-# FOR TESTING, we'll just maintain requests in a *global* array...
-# obviously a real Service driver will use a DB or API call!
-{
- our @SERVICE_REQUESTS;
- has _requests => (
- is => 'ro',
- isa => ArrayRef[ InstanceOf[ 'Open311::Endpoint::Service::Request' ] ],
- default => sub { \@SERVICE_REQUESTS },
- handles_via => 'Array',
- handles => {
- next_request_id => 'count',
- _add_request => 'push',
- get_request => 'get',
- get_requests => 'elements',
- filter_requests => 'grep',
- }
- );
-}
-
-sub post_service_request {
- my ($self, $service, $args) = @_;
-
- my $request = $self->new_request(
-
- # NB: possible race condition between next_request_id and _add_request
- # (this is fine for synchronous test-cases)
-
- service => $service,
- service_request_id => $self->next_request_id,
- status => 'open',
- description => $args->{description},
- agency_responsible => '',
- requested_datetime => DateTime->now(),
- updated_datetime => DateTime->now(),
- address => $args->{address_string} // '',
- address_id => $args->{address_id} // '',
- media_url => $args->{media_url} // '',
- zipcode => $args->{zipcode} // '',
- # NB: other info is passed in that would be stored by an Open311
- # endpoint, see Open311::Endpoint::Service::Request for full list,
- # but we don't need to handle all of those in this test
- );
- $self->_add_request( $request );
-
- return ( $request );
-}
-
-sub get_service_requests {
- my ($self, $args) = @_;
-
- my $service_code = $args->{service_code} or return $self->get_requests;
- return $self->filter_requests( sub { my $c = shift->service->service_code; grep { $_ eq $c } @$service_code });
-}
-
-sub get_service_request {
- my ($self, $service_request_id, $args) = @_;
- return $self->get_request( $service_request_id );
-}
-
-1;