File Coverage

lib/Smartcat/Client/Object/ProjectWorkflowStageModel.pm
Criterion Covered Total %
statement 37 66 56.0
branch 0 10 0.0
condition n/a
subroutine 11 15 73.3
pod 1 4 25.0
total 49 95 51.5


line stmt bran cond sub pod time code
1              
2             =begin comment
3              
4             Smartcat Integration API
5              
6             No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
7              
8             OpenAPI spec version: v1
9              
10             Generated by: https://github.com/swagger-api/swagger-codegen.git
11              
12             =end comment
13              
14             =cut
15              
16             #
17             # NOTE: This class is auto generated by the swagger code generator program.
18             # Do not edit the class manually.
19             # Ref: https://github.com/swagger-api/swagger-codegen
20             #
21             package Smartcat::Client::Object::ProjectWorkflowStageModel;
22              
23             require 5.6.0;
24 2     2   722 use strict;
  2         4  
  2         72  
25 2     2   10 use warnings;
  2         5  
  2         51  
26 2     2   574 use utf8;
  2         17  
  2         9  
27 2     2   646 use JSON qw(decode_json);
  2         8229  
  2         10  
28 2     2   879 use Data::Dumper;
  2         6316  
  2         112  
29 2     2   524 use Module::Runtime qw(use_module);
  2         1810  
  2         13  
30 2     2   600 use Log::Any qw($log);
  2         8407  
  2         12  
31 2     2   2900 use Date::Parse;
  2         7768  
  2         228  
32 2     2   902 use DateTime;
  2         505924  
  2         136  
33              
34 2     2   16 use base ( "Class::Accessor", "Class::Data::Inheritable" );
  2         5  
  2         1482  
35              
36             #
37             #
38             #
39             # NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually.
40             # REF: https://github.com/swagger-api/swagger-codegen
41             #
42              
43             =begin comment
44              
45             Smartcat Integration API
46              
47             No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
48              
49             OpenAPI spec version: v1
50              
51             Generated by: https://github.com/swagger-api/swagger-codegen.git
52              
53             =end comment
54              
55             =cut
56              
57             #
58             # NOTE: This class is auto generated by the swagger code generator program.
59             # Do not edit the class manually.
60             # Ref: https://github.com/swagger-api/swagger-codegen
61             #
62             __PACKAGE__->mk_classdata( 'attribute_map' => {} );
63             __PACKAGE__->mk_classdata( 'swagger_types' => {} );
64             __PACKAGE__->mk_classdata( 'method_documentation' => {} );
65             __PACKAGE__->mk_classdata( 'class_documentation' => {} );
66              
67             # new object
68             sub new {
69 1     1 1 611 my ( $class, %args ) = @_;
70              
71 1         3 my $self = bless {}, $class;
72              
73 1         2 foreach my $attribute ( keys %{ $class->attribute_map } ) {
  1         3  
74 2         30 my $args_key = $class->attribute_map->{$attribute};
75 2         19 $self->$attribute( $args{$args_key} );
76             }
77              
78 1         13 return $self;
79             }
80              
81             # return perl hash
82             sub to_hash {
83 0     0 0   return decode_json( JSON->new->convert_blessed->encode(shift) );
84             }
85              
86             # used by JSON for serialization
87             sub TO_JSON {
88 0     0 0   my $self = shift;
89 0           my $_data = {};
90 0           foreach my $_key ( keys %{ $self->attribute_map } ) {
  0            
91 0 0         if ( defined $self->{$_key} ) {
92 0           $_data->{ $self->attribute_map->{$_key} } = $self->{$_key};
93             }
94             }
95 0           return $_data;
96             }
97              
98             # from Perl hashref
99             sub from_hash {
100 0     0 0   my ( $self, $hash ) = @_;
101              
102             # loop through attributes and use swagger_types to deserialize the data
103 0           while ( my ( $_key, $_type ) = each %{ $self->swagger_types } ) {
  0            
104 0           my $_json_attribute = $self->attribute_map->{$_key};
105 0 0         if ( $_type =~ /^array\[/i ) { # array
    0          
106 0           my $_subclass = substr( $_type, 6, -1 );
107 0           my @_array = ();
108 0           foreach my $_element ( @{ $hash->{$_json_attribute} } ) {
  0            
109 0           push @_array, $self->_deserialize( $_subclass, $_element );
110             }
111 0           $self->{$_key} = \@_array;
112             }
113             elsif ( exists $hash->{$_json_attribute} )
114             { #hash(model), primitive, datetime
115             $self->{$_key} =
116 0           $self->_deserialize( $_type, $hash->{$_json_attribute} );
117             }
118             else {
119 0           $log->debugf( "Warning: %s (%s) does not exist in input hash\n",
120             $_key, $_json_attribute );
121             }
122             }
123              
124 0           return $self;
125             }
126              
127             # deserialize non-array data
128             sub _deserialize {
129 0     0     my ( $self, $type, $data ) = @_;
130 0           $log->debugf( "deserializing %s with %s", Dumper($data), $type );
131              
132 0 0         if ( $type eq 'DateTime' ) {
    0          
133 0           return DateTime->from_epoch( epoch => str2time($data) );
134             }
135             elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) {
136 0           return $data;
137             }
138             else { # hash(model)
139 0           my $_instance = eval "Smartcat::Client::Object::$type->new()";
140 0           return $_instance->from_hash($data);
141             }
142             }
143              
144             __PACKAGE__->class_documentation(
145             {
146             description => '',
147             class => 'ProjectWorkflowStageModel',
148             required => [], # TODO
149             }
150             );
151              
152             __PACKAGE__->method_documentation(
153             {
154             'progress' => {
155             datatype => 'double',
156             base_name => 'progress',
157             description => '',
158             format => '',
159             read_only => '',
160             },
161             'stage_type' => {
162             datatype => 'string',
163             base_name => 'stageType',
164             description => '',
165             format => '',
166             read_only => '',
167             },
168             }
169             );
170              
171             __PACKAGE__->swagger_types(
172             {
173             'progress' => 'double',
174             'stage_type' => 'string'
175             }
176             );
177              
178             __PACKAGE__->attribute_map(
179             {
180             'progress' => 'progress',
181             'stage_type' => 'stageType'
182             }
183             );
184              
185             __PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } );
186              
187             1;