File Coverage

blib/lib/OpenSearch/Parameters/Document/Get.pm
Criterion Covered Total %
statement 18 19 94.7
branch n/a
condition n/a
subroutine 6 7 85.7
pod 0 1 0.0
total 24 27 88.8


line stmt bran cond sub pod time code
1             package OpenSearch::Parameters::Document::Get;
2 4     4   2595 use strict;
  4         9  
  4         170  
3 4     4   23 use warnings;
  4         9  
  4         206  
4 4     4   23 use feature qw(state);
  4         8  
  4         479  
5 4     4   24 use Types::Standard qw(Str Bool Int Enum);
  4         8  
  4         35  
6 4     4   9203 use Types::Common::String qw(NonEmptyStr);
  4         10  
  4         5048  
7 4     4   4805 use Moo::Role;
  4         9  
  4         39  
8              
9             with 'OpenSearch::Parameters';
10              
11             has 'index' => (
12             is => 'rw',
13             isa => NonEmptyStr,
14             required => 1,
15             );
16              
17             has 'id' => (
18             is => 'rw',
19             isa => NonEmptyStr,
20             required => 1,
21             );
22              
23             has 'preference' => (
24             is => 'rw',
25             isa => Str,
26             );
27              
28             has 'realtime' => (
29             is => 'rw',
30             isa => Bool,
31             );
32              
33             has 'refresh' => (
34             is => 'rw',
35             isa => Bool,
36             );
37              
38             has 'routing' => (
39             is => 'rw',
40             isa => Str,
41             );
42              
43             has 'stored_fields' => (
44             is => 'rw',
45             isa => Bool,
46             );
47              
48             has '_source' => (
49             is => 'rw',
50             isa => Str,
51             );
52              
53             has '_source_includes' => (
54             is => 'rw',
55             isa => Str,
56             );
57              
58             has '_source_excludes' => (
59             is => 'rw',
60             isa => Str,
61             );
62              
63             has 'version' => (
64             is => 'rw',
65             isa => Int,
66             );
67              
68             has 'version_type' => (
69             is => 'rw',
70             isa => Enum [qw(internal external external_gte)],
71             );
72              
73             around [
74             qw/
75             index id preference realtime refresh routing stored_fields _source _source_includes _source_excludes version version_type
76             /
77             ] => sub {
78             my $orig = shift;
79             my $self = shift;
80              
81             if (@_) {
82             $self->$orig(@_);
83             return ($self);
84             }
85             return ( $self->$orig );
86             };
87              
88             sub api_spec {
89 0     0 0   state $s = +{
90             index => {
91             encode_func => 'as_is',
92             type => 'path',
93             },
94             id => {
95             encode_func => 'as_is',
96             type => 'path',
97             },
98             preference => {
99             encode_func => 'as_is',
100             type => 'url',
101             },
102             realtime => {
103             encode_func => 'encode_bool',
104             type => 'url',
105             },
106             refresh => {
107             encode_func => 'encode_bool',
108             type => 'url',
109             },
110             routing => {
111             encode_func => 'as_is',
112             type => 'body',
113             },
114             stored_fields => {
115             encode_func => 'encode_bool',
116             type => 'url',
117             },
118             _source => {
119             encode_func => 'as_is',
120             type => 'url',
121             },
122             _source_includes => {
123             encode_func => 'as_is',
124             type => 'url',
125             },
126             _source_excludes => {
127             encode_func => 'as_is',
128             type => 'url',
129             },
130             version => {
131             encode_func => 'as_is',
132             type => 'url',
133             },
134             version_type => {
135             encode_func => 'as_is',
136             type => 'url',
137             }
138             };
139             }
140              
141             1;