aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/Open311/Endpoint/Service
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/Open311/Endpoint/Service')
-rw-r--r--perllib/Open311/Endpoint/Service/Attribute.pm82
-rw-r--r--perllib/Open311/Endpoint/Service/Exor.pm44
-rw-r--r--perllib/Open311/Endpoint/Service/Request.pm110
-rw-r--r--perllib/Open311/Endpoint/Service/Request/Update.pm57
-rw-r--r--perllib/Open311/Endpoint/Service/Request/mySociety.pm51
5 files changed, 0 insertions, 344 deletions
diff --git a/perllib/Open311/Endpoint/Service/Attribute.pm b/perllib/Open311/Endpoint/Service/Attribute.pm
deleted file mode 100644
index f88919408..000000000
--- a/perllib/Open311/Endpoint/Service/Attribute.pm
+++ /dev/null
@@ -1,82 +0,0 @@
-package Open311::Endpoint::Service::Attribute;
-use Moo;
-use MooX::HandlesVia;
-use Types::Standard ':all';
-use namespace::clean;
-
-# from http://wiki.open311.org/GeoReport_v2#GET_Service_Definition
-
-# A unique identifier for the attribute
-has code => (
- is => 'ro',
- isa => Str,
-);
-
-# true denotes that user input is needed
-# false means the attribute is only used to present information to the user within the description field
-#
-# NB: unsure what false means for the rest of the options here, e.g. should remainder of fields by Maybe[] ?
-has variable => (
- is => 'ro',
- isa => Bool,
- default => sub { 1 },
-);
-
-# Denotes the type of field used for user input.
-has datatype => (
- is => 'ro',
- isa => Enum[qw/ string number datetime text singlevaluelist multivaluelist /],
-);
-
-has required => (
- is => 'ro',
- isa => Bool,
-);
-
-# A description of the datatype which helps the user provide their input
-has datatype_description => (
- is => 'ro',
- isa => Str,
-);
-
-# A description of the attribute field with instructions for the user to find
-# and identify the requested information
-has description => (
- is => 'ro',
- isa => Str,
-);
-
-# NB: we don't model the "Order" field here, as that's really for the Service
-# object to return
-
-# only relevant for singlevaluelist or multivaluelist
-has values => (
- is => 'ro',
- isa => HashRef,
- default => sub { {} },
- handles_via => 'Hash',
- handles => {
- get_value => 'get',
- get_values => 'keys',
- has_values => 'count',
- values_kv => 'kv',
- }
-);
-
-sub schema_definition {
- my $self = shift;
-
- my @values = map +{ type => '//str', value => $_ }, $self->get_values;
- my %schema_types = (
- string => '//str',
- number => '//num',
- datetime => '//str', # TODO
- text => '//str',
- singlevaluelist => { type => '//any', of => [@values] },
- multivaluelist => { type => '//arr', of => [@values] },
- );
-
- return $schema_types{ $self->datatype };
-}
-
-1;
diff --git a/perllib/Open311/Endpoint/Service/Exor.pm b/perllib/Open311/Endpoint/Service/Exor.pm
deleted file mode 100644
index 6261875c1..000000000
--- a/perllib/Open311/Endpoint/Service/Exor.pm
+++ /dev/null
@@ -1,44 +0,0 @@
-package Open311::Endpoint::Service::Exor;
-use Moo;
-extends 'Open311::Endpoint::Service';
-use Open311::Endpoint::Service::Attribute;
-
-has '+attributes' => (
- is => 'ro',
- default => sub { [
- Open311::Endpoint::Service::Attribute->new(
- code => 'easting',
- variable => 0, # set by server
- datatype => 'number',
- required => 1,
- datatype_description => 'a number',
- description => 'easting',
- ),
- Open311::Endpoint::Service::Attribute->new(
- code => 'northing',
- variable => 0, # set by server
- datatype => 'number',
- required => 1,
- datatype_description => 'a number',
- description => 'northing',
- ),
- Open311::Endpoint::Service::Attribute->new(
- code => 'closest_address',
- variable => 0, # set by server
- datatype => 'string',
- required => 1,
- datatype_description => 'an address',
- description => 'closest address',
- ),
- Open311::Endpoint::Service::Attribute->new(
- code => 'external_id',
- variable => 0, # set by server
- datatype => 'string',
- required => 1,
- datatype_description => 'an id',
- description => 'external system ID',
- ),
- ] },
-);
-
-1;
diff --git a/perllib/Open311/Endpoint/Service/Request.pm b/perllib/Open311/Endpoint/Service/Request.pm
deleted file mode 100644
index 8dfa5df3a..000000000
--- a/perllib/Open311/Endpoint/Service/Request.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-package Open311::Endpoint::Service::Request;
-use Moo;
-use MooX::HandlesVia;
-use Types::Standard ':all';
-use namespace::clean;
-
-has service => (
- is => 'ro',
- isa => InstanceOf['Open311::Endpoint::Service'],
- handles => [
- qw/ service_code service_name /
- ],
-);
-
-has service_request_id => (
- is => 'ro',
- isa => Maybe[Str],
- predicate => 1,
-);
-
-has token => (
- is => 'ro',
- isa => Maybe[Str],
- predicate => 1,
-);
-
-has service_notice => (
- is => 'ro',
- isa => Maybe[Str],
- predicate => 1,
-);
-
-has account_id => (
- is => 'ro',
- isa => Maybe[Str],
- predicate => 1,
-);
-
-has status => (
- is => 'rw',
- isa => Enum[qw/ open closed /],
- default => sub { 'open' },
-);
-
-has description => (
- is => 'ro',
- isa => Maybe[Str],
-);
-
-has agency_responsible => (
- is => 'ro',
- isa => Maybe[Str],
-);
-
-has requested_datetime => (
- is => 'ro',
- isa => Maybe[ InstanceOf['DateTime'] ],
- default => sub { DateTime->now() },
-);
-
-has updated_datetime => (
- is => 'rw',
- isa => Maybe[ InstanceOf['DateTime'] ],
- default => sub { DateTime->now() },
-);
-
-has expected_datetime => (
- is => 'ro',
- isa => Maybe[ InstanceOf['DateTime'] ],
-);
-
-has address => (
- is => 'ro',
- isa => Str,
- default => sub { '' },
-);
-
-has address_id => (
- is => 'ro',
- isa => Str,
- default => sub { '' },
-);
-
-has zipcode => (
- is => 'ro',
- isa => Str,
- default => sub { '' },
-);
-
-has latlong => (
- is => 'ro',
- isa => Tuple[ Num, Num ],
- default => sub { [0,0] },
- handles_via => 'Array',
- handles => {
- #lat => [ get => 0 ],
- #long => [ get => 1 ],
- }
-);
-
-sub lat { shift->latlong->[0] }
-sub long { shift->latlong->[1] }
-
-has media_url => (
- is => 'ro',
- isa => Str,
- default => sub { '' },
-);
-
-1;
diff --git a/perllib/Open311/Endpoint/Service/Request/Update.pm b/perllib/Open311/Endpoint/Service/Request/Update.pm
deleted file mode 100644
index b881af9ce..000000000
--- a/perllib/Open311/Endpoint/Service/Request/Update.pm
+++ /dev/null
@@ -1,57 +0,0 @@
-package Open311::Endpoint::Service::Request::Update;
-use Moo;
-use Types::Standard ':all';
-use namespace::clean;
-
-sub BUILDARGS {
- my ($class, %args) = @_;
- my $service_request = delete $args{service_request};
-
- if (! $args{status}) {
- $args{status} = $service_request->status;
- }
-
- return \%args;
-}
-
-has update_id => (
- is => 'ro',
- isa => Maybe[Str],
- predicate => 1,
-);
-
-has service_request_id => (
- is => 'ro',
- isa => Maybe[Str],
- predicate => 1,
-);
-
-has token => (
- is => 'ro',
- isa => Maybe[Str],
- predicate => 1,
-);
-
-has status => (
- is => 'ro',
- isa => Enum[qw/ open closed /],
-);
-
-has description => (
- is => 'ro',
- isa => Maybe[Str],
-);
-
-has media_url => (
- is => 'ro',
- isa => Str,
- default => sub { '' },
-);
-
-has updated_datetime => (
- is => 'ro',
- isa => InstanceOf['DateTime'],
- default => sub { DateTime->now() },
-);
-
-1;
diff --git a/perllib/Open311/Endpoint/Service/Request/mySociety.pm b/perllib/Open311/Endpoint/Service/Request/mySociety.pm
deleted file mode 100644
index 85e31b26f..000000000
--- a/perllib/Open311/Endpoint/Service/Request/mySociety.pm
+++ /dev/null
@@ -1,51 +0,0 @@
-package Open311::Endpoint::Service::Request::mySociety;
-use Moo;
-use MooX::HandlesVia;
-extends 'Open311::Endpoint::Service::Request';
-
-use DateTime;
-use Open311::Endpoint::Service::Request::Update;
-use Types::Standard ':all';
-
-has updates => (
- is => 'rw',
- isa => ArrayRef[InstanceOf['Open311::Endpoint::Service::Request::Update']],
- default => sub { [] },
- handles_via => 'Array',
- handles => {
- _add_update => 'push',
- get_updates => 'elements',
- get_update => 'get',
- has_updates => 'count',
- filter_updates => 'grep',
- }
-);
-
-sub add_update {
- my ($self, %args) = @_;
- my $update = Open311::Endpoint::Service::Request::Update->new(
- %args,
- service_request => $self,
- service_request_id => $self->service_request_id,
- );
- $self->_add_update($update);
-}
-
-sub last_update {
- my $self = shift;
- return $self->has_updates ? $self->get_update(-1) : undef;
-}
-
-around updated_datetime => sub {
- my ($orig, $self) = @_;
- my $last_update = $self->last_update or return;
- return $last_update->updated_datetime;
-};
-
-around status => sub {
- my ($orig, $self) = @_;
- my $last_update = $self->last_update or return 'open';
- return $last_update->status;
-};
-
-1;