File Coverage

lib/Smartcat/Client/Object/CreateProjectModel.pm
Criterion Covered Total %
statement 40 69 57.9
branch 0 10 0.0
condition n/a
subroutine 12 16 75.0
pod 1 4 25.0
total 53 99 53.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::CreateProjectModel;
22              
23             require 5.6.0;
24 2     2   825 use strict;
  2         4  
  2         65  
25 2     2   25 use warnings;
  2         4  
  2         56  
26 2     2   612 use utf8;
  2         17  
  2         13  
27 2     2   741 use JSON qw(decode_json);
  2         8997  
  2         14  
28 2     2   961 use Data::Dumper;
  2         6560  
  2         128  
29 2     2   557 use Module::Runtime qw(use_module);
  2         1906  
  2         14  
30 2     2   668 use Log::Any qw($log);
  2         8849  
  2         15  
31 2     2   3068 use Date::Parse;
  2         8080  
  2         227  
32 2     2   911 use DateTime;
  2         509497  
  2         76  
33              
34 2     2   943 use Smartcat::Client::Object::CreateDocumentPropertyModel;
  2         6  
  2         15  
35              
36 2     2   119 use base ( "Class::Accessor", "Class::Data::Inheritable" );
  2         4  
  2         2107  
37              
38             #
39             #
40             #
41             # NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually.
42             # REF: https://github.com/swagger-api/swagger-codegen
43             #
44              
45             =begin comment
46              
47             Smartcat Integration API
48              
49             No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
50              
51             OpenAPI spec version: v1
52              
53             Generated by: https://github.com/swagger-api/swagger-codegen.git
54              
55             =end comment
56              
57             =cut
58              
59             #
60             # NOTE: This class is auto generated by the swagger code generator program.
61             # Do not edit the class manually.
62             # Ref: https://github.com/swagger-api/swagger-codegen
63             #
64             __PACKAGE__->mk_classdata( 'attribute_map' => {} );
65             __PACKAGE__->mk_classdata( 'swagger_types' => {} );
66             __PACKAGE__->mk_classdata( 'method_documentation' => {} );
67             __PACKAGE__->mk_classdata( 'class_documentation' => {} );
68              
69             # new object
70             sub new {
71 1     1 1 629 my ( $class, %args ) = @_;
72              
73 1         2 my $self = bless {}, $class;
74              
75 1         2 foreach my $attribute ( keys %{ $class->attribute_map } ) {
  1         4  
76 18         197 my $args_key = $class->attribute_map->{$attribute};
77 18         138 $self->$attribute( $args{$args_key} );
78             }
79              
80 1         13 return $self;
81             }
82              
83             # return perl hash
84             sub to_hash {
85 0     0 0   return decode_json( JSON->new->convert_blessed->encode(shift) );
86             }
87              
88             # used by JSON for serialization
89             sub TO_JSON {
90 0     0 0   my $self = shift;
91 0           my $_data = {};
92 0           foreach my $_key ( keys %{ $self->attribute_map } ) {
  0            
93 0 0         if ( defined $self->{$_key} ) {
94 0           $_data->{ $self->attribute_map->{$_key} } = $self->{$_key};
95             }
96             }
97 0           return $_data;
98             }
99              
100             # from Perl hashref
101             sub from_hash {
102 0     0 0   my ( $self, $hash ) = @_;
103              
104             # loop through attributes and use swagger_types to deserialize the data
105 0           while ( my ( $_key, $_type ) = each %{ $self->swagger_types } ) {
  0            
106 0           my $_json_attribute = $self->attribute_map->{$_key};
107 0 0         if ( $_type =~ /^array\[/i ) { # array
    0          
108 0           my $_subclass = substr( $_type, 6, -1 );
109 0           my @_array = ();
110 0           foreach my $_element ( @{ $hash->{$_json_attribute} } ) {
  0            
111 0           push @_array, $self->_deserialize( $_subclass, $_element );
112             }
113 0           $self->{$_key} = \@_array;
114             }
115             elsif ( exists $hash->{$_json_attribute} )
116             { #hash(model), primitive, datetime
117             $self->{$_key} =
118 0           $self->_deserialize( $_type, $hash->{$_json_attribute} );
119             }
120             else {
121 0           $log->debugf( "Warning: %s (%s) does not exist in input hash\n",
122             $_key, $_json_attribute );
123             }
124             }
125              
126 0           return $self;
127             }
128              
129             # deserialize non-array data
130             sub _deserialize {
131 0     0     my ( $self, $type, $data ) = @_;
132 0           $log->debugf( "deserializing %s with %s", Dumper($data), $type );
133              
134 0 0         if ( $type eq 'DateTime' ) {
    0          
135 0           return DateTime->from_epoch( epoch => str2time($data) );
136             }
137             elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) {
138 0           return $data;
139             }
140             else { # hash(model)
141 0           my $_instance = eval "Smartcat::Client::Object::$type->new()";
142 0           return $_instance->from_hash($data);
143             }
144             }
145              
146             __PACKAGE__->class_documentation(
147             {
148             description => '',
149             class => 'CreateProjectModel',
150             required => [], # TODO
151             }
152             );
153              
154             __PACKAGE__->method_documentation(
155             {
156             'name' => {
157             datatype => 'string',
158             base_name => 'name',
159             description => '',
160             format => '',
161             read_only => '',
162             },
163             'description' => {
164             datatype => 'string',
165             base_name => 'description',
166             description => '',
167             format => '',
168             read_only => '',
169             },
170             'deadline' => {
171             datatype => 'DateTime',
172             base_name => 'deadline',
173             description => '',
174             format => '',
175             read_only => '',
176             },
177             'source_language' => {
178             datatype => 'string',
179             base_name => 'sourceLanguage',
180             description => '',
181             format => '',
182             read_only => '',
183             },
184             'target_languages' => {
185             datatype => 'ARRAY[string]',
186             base_name => 'targetLanguages',
187             description => '',
188             format => '',
189             read_only => '',
190             },
191             'domain_id' => {
192             datatype => 'int',
193             base_name => 'domainId',
194             description => '',
195             format => '',
196             read_only => '',
197             },
198             'client_id' => {
199             datatype => 'string',
200             base_name => 'clientId',
201             description => '',
202             format => '',
203             read_only => '',
204             },
205             'vendor_account_id' => {
206             datatype => 'string',
207             base_name => 'vendorAccountId',
208             description => '',
209             format => '',
210             read_only => '',
211             },
212             'assign_to_vendor' => {
213             datatype => 'boolean',
214             base_name => 'assignToVendor',
215             description => '',
216             format => '',
217             read_only => '',
218             },
219             'use_mt' => {
220             datatype => 'boolean',
221             base_name => 'useMT',
222             description => '',
223             format => '',
224             read_only => '',
225             },
226             'pretranslate' => {
227             datatype => 'boolean',
228             base_name => 'pretranslate',
229             description => '',
230             format => '',
231             read_only => '',
232             },
233             'translation_memory_name' => {
234             datatype => 'string',
235             base_name => 'translationMemoryName',
236             description => '',
237             format => '',
238             read_only => '',
239             },
240             'use_translation_memory' => {
241             datatype => 'boolean',
242             base_name => 'useTranslationMemory',
243             description => '',
244             format => '',
245             read_only => '',
246             },
247             'auto_propagate_repetitions' => {
248             datatype => 'boolean',
249             base_name => 'autoPropagateRepetitions',
250             description => '',
251             format => '',
252             read_only => '',
253             },
254             'document_properties' => {
255             datatype => 'ARRAY[CreateDocumentPropertyModel]',
256             base_name => 'documentProperties',
257             description => '',
258             format => '',
259             read_only => '',
260             },
261             'workflow_stages' => {
262             datatype => 'ARRAY[string]',
263             base_name => 'workflowStages',
264             description => '',
265             format => '',
266             read_only => '',
267             },
268             'is_for_testing' => {
269             datatype => 'boolean',
270             base_name => 'isForTesting',
271             description => '',
272             format => '',
273             read_only => '',
274             },
275             'external_tag' => {
276             datatype => 'string',
277             base_name => 'externalTag',
278             description => '',
279             format => '',
280             read_only => '',
281             },
282             }
283             );
284              
285             __PACKAGE__->swagger_types(
286             {
287             'name' => 'string',
288             'description' => 'string',
289             'deadline' => 'DateTime',
290             'source_language' => 'string',
291             'target_languages' => 'ARRAY[string]',
292             'domain_id' => 'int',
293             'client_id' => 'string',
294             'vendor_account_id' => 'string',
295             'assign_to_vendor' => 'boolean',
296             'use_mt' => 'boolean',
297             'pretranslate' => 'boolean',
298             'translation_memory_name' => 'string',
299             'use_translation_memory' => 'boolean',
300             'auto_propagate_repetitions' => 'boolean',
301             'document_properties' => 'ARRAY[CreateDocumentPropertyModel]',
302             'workflow_stages' => 'ARRAY[string]',
303             'is_for_testing' => 'boolean',
304             'external_tag' => 'string'
305             }
306             );
307              
308             __PACKAGE__->attribute_map(
309             {
310             'name' => 'name',
311             'description' => 'description',
312             'deadline' => 'deadline',
313             'source_language' => 'sourceLanguage',
314             'target_languages' => 'targetLanguages',
315             'domain_id' => 'domainId',
316             'client_id' => 'clientId',
317             'vendor_account_id' => 'vendorAccountId',
318             'assign_to_vendor' => 'assignToVendor',
319             'use_mt' => 'useMT',
320             'pretranslate' => 'pretranslate',
321             'translation_memory_name' => 'translationMemoryName',
322             'use_translation_memory' => 'useTranslationMemory',
323             'auto_propagate_repetitions' => 'autoPropagateRepetitions',
324             'document_properties' => 'documentProperties',
325             'workflow_stages' => 'workflowStages',
326             'is_for_testing' => 'isForTesting',
327             'external_tag' => 'externalTag'
328             }
329             );
330              
331             __PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } );
332              
333             1;