diff options
Diffstat (limited to 'perllib/Open311/Endpoint/Result.pm')
-rw-r--r-- | perllib/Open311/Endpoint/Result.pm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/perllib/Open311/Endpoint/Result.pm b/perllib/Open311/Endpoint/Result.pm new file mode 100644 index 000000000..2d3c42154 --- /dev/null +++ b/perllib/Open311/Endpoint/Result.pm @@ -0,0 +1,38 @@ +package Open311::Endpoint::Result; +use Moo; + +has status => ( + is => 'ro', +); +has data => ( + is => 'ro', +); + +sub success { + my ($class, $data) = @_; + return $class->new({ + status => 200, + data => $data, + }); +} + +sub error { + my ($class, $code, @errors) = @_; + $code ||= 400; + return $class->new({ + status => $code, + data => { + errors => [ + map { + ref $_ eq 'HASH' ? $_ : + { + code => $code, + description => $_, + } + } @errors, + ], + }, + }); +} + +1; |