VERSION
This document describes version 0.24 of Perinci::Object::EnvResultMulti (from Perl distribution Perinci-Object), released on 2015-09-03.SYNOPSIS
use Perinci::Object::EnvResultMulti;
use Data::Dump; # for dd()
sub myfunc {
...
# if unspecified, the default status will be [200, "Success/no items"]
my $envres = Perinci::Object::EnvResultMulti->new;
# then you can add result for each item
$envres->add_result(200, "OK", {item_id=>1});
$envres->add_result(202, "OK", {item_id=>2, note=>"blah"});
$envres->add_result(404, "Not found", {item_id=>3});
...
# if you add a success status, the overall status will still be 200
# if you add a non-success staus, the overall status will be 207, or
# the non-success status (if no success has been added)
# finally, return the result
return $envres->as_struct;
# the result from the above will be: [207, "Partial success", undef,
# {results => [
# {success=>200, message=>"OK", item_id=>1},
# {success=>201, message=>"OK", item_id=>2, note=>"blah"},
# {success=>404, message=>"Not found", item_id=>3},
# ]}]
} # myfunc
DESCRIPTION
This class is a subclass of Perinci::Object::EnvResult and provide a convenience method when you want to use multistatus/detailed per-item results (specified in Rinci 1.1.63: "results" result metadata property). In this case, response status can be 200, 207, or non-success. As you add more per-item results, this class will set/update the overall response status for you.METHODS
new($res) => OBJECT
Create a new object from $res enveloped result array. If $res is not specified, the default is "[200, "Success/no items"]".$envres->add_result($status, $message, \%extra)
Add an item result.HOMEPAGE
Please visit the project's homepage at <https://metacpan.org/release/Perinci-Object>.SOURCE
Source repository is at <https://github.com/perlancar/perl-Perinci-Object>.BUGS
Please report any bugs or feature requests on the bugtracker website <https://rt.cpan.org/Public/Dist/Display.html?Name=Perinci-Object>When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
AUTHOR
perlancar <[email protected]>COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by [email protected].This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.