File Coverage

blib/lib/AsposeOcrCloud/OcrApi.pm
Criterion Covered Total %
statement 27 117 23.0
branch 0 42 0.0
condition n/a
subroutine 9 12 75.0
pod 0 3 0.0
total 36 174 20.6


line stmt bran cond sub pod time code
1             package AsposeOcrCloud::OcrApi;
2              
3             require 5.6.0;
4 1     1   199655 use strict;
  1         2  
  1         30  
5 1     1   5 use warnings;
  1         2  
  1         28  
6 1     1   5 use utf8;
  1         2  
  1         8  
7 1     1   18 use Exporter;
  1         1  
  1         42  
8 1     1   7 use Carp qw( croak );
  1         1  
  1         42  
9 1     1   5 use Log::Any qw($log);
  1         2  
  1         8  
10 1     1   229 use File::Slurp;
  1         1  
  1         60  
11              
12 1     1   328 use AsposeOcrCloud::ApiClient;
  1         2  
  1         26  
13 1     1   7 use AsposeOcrCloud::Configuration;
  1         2  
  1         1309  
14              
15             my $VERSION = '1.03';
16              
17             sub new {
18 0     0 0   my $class = shift;
19 0 0         my $default_api_client = $AsposeOcrCloud::Configuration::api_client ? $AsposeOcrCloud::Configuration::api_client :
20             AsposeOcrCloud::ApiClient->new;
21 0           my (%self) = (
22             'api_client' => $default_api_client,
23             @_
24             );
25              
26             #my $self = {
27             # #api_client => $options->{api_client}
28             # api_client => $default_api_client
29             #};
30              
31 0           bless \%self, $class;
32              
33             }
34              
35             #
36             # PostOcrFromUrlOrContent
37             #
38             # Recognize image text from some url if provided or from the request body content, language can be selected, default dictionaries can be used for correction.
39             #
40             # @param String $url The image file url. (optional)
41             # @param String $language Language of the document. (optional)
42             # @param Boolean $useDefaultDictionaries Use default dictionaries for result correction. (optional)
43             # @param File $file (required)
44             # @return OCRResponse
45             #
46             sub PostOcrFromUrlOrContent {
47 0     0 0   my ($self, %args) = @_;
48              
49            
50             # parse inputs
51 0           my $_resource_path = '/ocr/recognize/?appSid={appSid}&url={url}&language={language}&useDefaultDictionaries={useDefaultDictionaries}';
52            
53 0           $_resource_path =~ s/\Q&\E/&/g;
54 0           $_resource_path =~ s/\Q\/?\E/?/g;
55 0           $_resource_path =~ s/\QtoFormat={toFormat}\E/format={format}/g;
56 0           $_resource_path =~ s/\Q{path}\E/{Path}/g;
57            
58 0           my $_method = 'POST';
59 0           my $query_params = {};
60 0           my $header_params = {};
61 0           my $form_params = {};
62              
63             # 'Accept' and 'Content-Type' header
64 0           my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json');
65 0 0         if ($_header_accept) {
66 0           $header_params->{'Accept'} = $_header_accept;
67             }
68 0           $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('multipart/form-data');
69              
70             # query params
71 0 0         if ( exists $args{'url'}) {
72 0           $_resource_path =~ s/\Q{url}\E/$args{'url'}/g;
73             }else{
74 0           $_resource_path =~ s/[?&]url.*?(?=&|\?|$)//g;
75             }# query params
76 0 0         if ( exists $args{'language'}) {
77 0           $_resource_path =~ s/\Q{language}\E/$args{'language'}/g;
78             }else{
79 0           $_resource_path =~ s/[?&]language.*?(?=&|\?|$)//g;
80             }# query params
81 0 0         if ( exists $args{'useDefaultDictionaries'}) {
82 0           $_resource_path =~ s/\Q{useDefaultDictionaries}\E/$args{'useDefaultDictionaries'}/g;
83             }else{
84 0           $_resource_path =~ s/[?&]useDefaultDictionaries.*?(?=&|\?|$)//g;
85             }
86            
87            
88 0           my $_body_data;
89             # form params
90 0 0         if ( exists $args{'file'} ) {
91            
92 0           $_body_data = read_file( $args{'file'} , binmode => ':raw' );
93            
94            
95             }
96            
97            
98              
99             # authentication setting, if any
100 0           my $auth_settings = [];
101              
102             # make the API Call
103 0           my $response = $self->{api_client}->call_api($_resource_path, $_method,
104             $query_params, $form_params,
105             $header_params, $_body_data, $auth_settings);
106 0 0         if (!$response) {
107 0           return;
108             }
109              
110 0 0         if($AsposeOcrCloud::Configuration::debug){
111 0           print "\nResponse Content: ".$response->content;
112             }
113            
114 0           my $_response_object = $self->{api_client}->pre_deserialize($response->content, 'OCRResponse', $response->header('content-type'));
115 0           return $_response_object;
116            
117             }
118             #
119             # GetRecognizeDocument
120             #
121             # Recognize image text, language and text region can be selected, default dictionaries can be used for correction.
122             #
123             # @param String $name Name of the file to recognize. (required)
124             # @param String $language Language of the document. (optional)
125             # @param String $rectX Top left point X coordinate of to recognize text inside. (optional)
126             # @param String $rectY Top left point Y coordinate of to recognize text inside. (optional)
127             # @param String $rectWidth Width of to recognize text inside. (optional)
128             # @param String $rectHeight Height of to recognize text inside. (optional)
129             # @param Boolean $useDefaultDictionaries Use default dictionaries for result correction. (optional)
130             # @param String $storage Image's storage. (optional)
131             # @param String $folder Image's folder. (optional)
132             # @return OCRResponse
133             #
134             sub GetRecognizeDocument {
135 0     0 0   my ($self, %args) = @_;
136              
137            
138             # verify the required parameter 'name' is set
139 0 0         unless (exists $args{'name'}) {
140 0           croak("Missing the required parameter 'name' when calling GetRecognizeDocument");
141             }
142            
143              
144             # parse inputs
145 0           my $_resource_path = '/ocr/{name}/recognize/?appSid={appSid}&language={language}&rectX={rectX}&rectY={rectY}&rectWidth={rectWidth}&rectHeight={rectHeight}&useDefaultDictionaries={useDefaultDictionaries}&storage={storage}&folder={folder}';
146            
147 0           $_resource_path =~ s/\Q&\E/&/g;
148 0           $_resource_path =~ s/\Q\/?\E/?/g;
149 0           $_resource_path =~ s/\QtoFormat={toFormat}\E/format={format}/g;
150 0           $_resource_path =~ s/\Q{path}\E/{Path}/g;
151            
152 0           my $_method = 'GET';
153 0           my $query_params = {};
154 0           my $header_params = {};
155 0           my $form_params = {};
156              
157             # 'Accept' and 'Content-Type' header
158 0           my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json');
159 0 0         if ($_header_accept) {
160 0           $header_params->{'Accept'} = $_header_accept;
161             }
162 0           $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json');
163              
164             # query params
165 0 0         if ( exists $args{'name'}) {
166 0           $_resource_path =~ s/\Q{name}\E/$args{'name'}/g;
167             }else{
168 0           $_resource_path =~ s/[?&]name.*?(?=&|\?|$)//g;
169             }# query params
170 0 0         if ( exists $args{'language'}) {
171 0           $_resource_path =~ s/\Q{language}\E/$args{'language'}/g;
172             }else{
173 0           $_resource_path =~ s/[?&]language.*?(?=&|\?|$)//g;
174             }# query params
175 0 0         if ( exists $args{'rectX'}) {
176 0           $_resource_path =~ s/\Q{rectX}\E/$args{'rectX'}/g;
177             }else{
178 0           $_resource_path =~ s/[?&]rectX.*?(?=&|\?|$)//g;
179             }# query params
180 0 0         if ( exists $args{'rectY'}) {
181 0           $_resource_path =~ s/\Q{rectY}\E/$args{'rectY'}/g;
182             }else{
183 0           $_resource_path =~ s/[?&]rectY.*?(?=&|\?|$)//g;
184             }# query params
185 0 0         if ( exists $args{'rectWidth'}) {
186 0           $_resource_path =~ s/\Q{rectWidth}\E/$args{'rectWidth'}/g;
187             }else{
188 0           $_resource_path =~ s/[?&]rectWidth.*?(?=&|\?|$)//g;
189             }# query params
190 0 0         if ( exists $args{'rectHeight'}) {
191 0           $_resource_path =~ s/\Q{rectHeight}\E/$args{'rectHeight'}/g;
192             }else{
193 0           $_resource_path =~ s/[?&]rectHeight.*?(?=&|\?|$)//g;
194             }# query params
195 0 0         if ( exists $args{'useDefaultDictionaries'}) {
196 0           $_resource_path =~ s/\Q{useDefaultDictionaries}\E/$args{'useDefaultDictionaries'}/g;
197             }else{
198 0           $_resource_path =~ s/[?&]useDefaultDictionaries.*?(?=&|\?|$)//g;
199             }# query params
200 0 0         if ( exists $args{'storage'}) {
201 0           $_resource_path =~ s/\Q{storage}\E/$args{'storage'}/g;
202             }else{
203 0           $_resource_path =~ s/[?&]storage.*?(?=&|\?|$)//g;
204             }# query params
205 0 0         if ( exists $args{'folder'}) {
206 0           $_resource_path =~ s/\Q{folder}\E/$args{'folder'}/g;
207             }else{
208 0           $_resource_path =~ s/[?&]folder.*?(?=&|\?|$)//g;
209             }
210            
211            
212 0           my $_body_data;
213            
214            
215            
216              
217             # authentication setting, if any
218 0           my $auth_settings = [];
219              
220             # make the API Call
221 0           my $response = $self->{api_client}->call_api($_resource_path, $_method,
222             $query_params, $form_params,
223             $header_params, $_body_data, $auth_settings);
224 0 0         if (!$response) {
225 0           return;
226             }
227              
228 0 0         if($AsposeOcrCloud::Configuration::debug){
229 0           print "\nResponse Content: ".$response->content;
230             }
231            
232 0           my $_response_object = $self->{api_client}->pre_deserialize($response->content, 'OCRResponse', $response->header('content-type'));
233 0           return $_response_object;
234            
235             }
236              
237              
238             1;