aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/Open311/Endpoint/Result.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/Open311/Endpoint/Result.pm')
-rw-r--r--perllib/Open311/Endpoint/Result.pm38
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;