Class: CloudPDF::Doc::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/CloudPDF/doc/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ void



9
10
11
# File 'lib/CloudPDF/doc/client.rb', line 9

def initialize(client:)
  @client = client
end

Instance Method Details

#annotationsCloudPDF::Annotations::Client

Returns:

  • (CloudPDF::Annotations::Client)


233
234
235
# File 'lib/CloudPDF/doc/client.rb', line 233

def annotations
  @annotations ||= CloudPDF::Doc::Annotations::Client.new(client: @client)
end

#download(request_options: {}, **params) ⇒ untyped

Examples:

client.doc.download(
  doc_id: "docId",
  layer_name: "layerName"
)

Parameters:

  • request_options (Hash) (defaults to: {})
  • params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :doc_id (String)
  • :layer_name (String)
  • :document_password (String, nil)

Returns:

  • (untyped)

Raises:

  • (error_class)


71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/CloudPDF/doc/client.rb', line 71

def download(request_options: {}, **params)
  params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
  headers = {}
  headers["X-Document-Password"] = params[:document_password] if params[:document_password]

  request = CloudPDF::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "GET",
    path: "v1/docs/#{URI.encode_uri_component(params[:doc_id].to_s)}/layers/#{URI.encode_uri_component(params[:layer_name].to_s)}/download",
    headers: headers,
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise CloudPDF::Errors::TimeoutError
  end
  code = response.code.to_i
  return if code.between?(200, 299)

  error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
  raise error_class.new(response.body, code: code)
end

#formsCloudPDF::Forms::Client

Returns:

  • (CloudPDF::Forms::Client)


238
239
240
# File 'lib/CloudPDF/doc/client.rb', line 238

def forms
  @forms ||= CloudPDF::Doc::Forms::Client.new(client: @client)
end

#head(request_options: {}, **params) ⇒ CloudPDF::Types::DocHead200Response

Examples:

client.doc.head(doc_id: "docId")

Parameters:

  • request_options (Hash) (defaults to: {})
  • params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :doc_id (String)
  • :document_password (String, nil)

Returns:



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/CloudPDF/doc/client.rb', line 27

def head(request_options: {}, **params)
  params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
  headers = {}
  headers["X-Document-Password"] = params[:document_password] if params[:document_password]

  request = CloudPDF::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "GET",
    path: "v1/docs/#{URI.encode_uri_component(params[:doc_id].to_s)}/head",
    headers: headers,
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise CloudPDF::Errors::TimeoutError
  end
  code = response.code.to_i
  if code.between?(200, 299)
    CloudPDF::Types::DocHead200Response.load(response.body)
  else
    error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(response.body, code: code)
  end
end

#manifest(request_options: {}, **params) ⇒ CloudPDF::Types::DocManifest200Response

Examples:

client.doc.manifest(
  doc_id: "docId",
  layer_name: "layerName"
)

Parameters:

  • request_options (Hash) (defaults to: {})
  • params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :doc_id (String)
  • :layer_name (String)
  • :document_password (String, nil)

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/CloudPDF/doc/client.rb', line 113

def manifest(request_options: {}, **params)
  params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
  headers = {}
  headers["X-Document-Password"] = params[:document_password] if params[:document_password]

  request = CloudPDF::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "GET",
    path: "v1/docs/#{URI.encode_uri_component(params[:doc_id].to_s)}/layers/#{URI.encode_uri_component(params[:layer_name].to_s)}/manifest",
    headers: headers,
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise CloudPDF::Errors::TimeoutError
  end
  code = response.code.to_i
  if code.between?(200, 299)
    CloudPDF::Types::DocManifest200Response.load(response.body)
  else
    error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(response.body, code: code)
  end
end

#metadataCloudPDF::Metadata::Client

Returns:

  • (CloudPDF::Metadata::Client)


243
244
245
# File 'lib/CloudPDF/doc/client.rb', line 243

def 
  @metadata ||= CloudPDF::Doc::Metadata::Client.new(client: @client)
end

#pagesCloudPDF::Pages::Client

Returns:

  • (CloudPDF::Pages::Client)


248
249
250
# File 'lib/CloudPDF/doc/client.rb', line 248

def pages
  @pages ||= CloudPDF::Doc::Pages::Client.new(client: @client)
end

#redactionsCloudPDF::Redactions::Client

Returns:

  • (CloudPDF::Redactions::Client)


253
254
255
# File 'lib/CloudPDF/doc/client.rb', line 253

def redactions
  @redactions ||= CloudPDF::Doc::Redactions::Client.new(client: @client)
end

#render(request_options: {}, **params) ⇒ untyped

Render parameters (viewport, format) pass as flat dotted query keys, e.g. ?viewport.kind=width&viewport.width=800; the full grammar is documented with the viewer.

Examples:

client.doc.render(
  doc_id: "docId",
  layer_name: "layerName",
  pon: 1
)

Parameters:

  • request_options (Hash) (defaults to: {})
  • params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :doc_id (String)
  • :layer_name (String)
  • :pon (Integer)
  • :document_password (String, nil)

Returns:

  • (untyped)

Raises:

  • (error_class)


162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/CloudPDF/doc/client.rb', line 162

def render(request_options: {}, **params)
  params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
  headers = {}
  headers["X-Document-Password"] = params[:document_password] if params[:document_password]

  request = CloudPDF::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "GET",
    path: "v1/docs/#{URI.encode_uri_component(params[:doc_id].to_s)}/layers/#{URI.encode_uri_component(params[:layer_name].to_s)}/render/pages/#{URI.encode_uri_component(params[:pon].to_s)}/data",
    headers: headers,
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise CloudPDF::Errors::TimeoutError
  end
  code = response.code.to_i
  return if code.between?(200, 299)

  error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
  raise error_class.new(response.body, code: code)
end

#text(request_options: {}, **params) ⇒ CloudPDF::Types::DocText200Response

Examples:

client.doc.text(
  doc_id: "docId",
  layer_name: "layerName",
  pon: 1
)

Parameters:

  • request_options (Hash) (defaults to: {})
  • params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :doc_id (String)
  • :layer_name (String)
  • :pon (Integer)
  • :document_password (String, nil)

Returns:



206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
# File 'lib/CloudPDF/doc/client.rb', line 206

def text(request_options: {}, **params)
  params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
  headers = {}
  headers["X-Document-Password"] = params[:document_password] if params[:document_password]

  request = CloudPDF::Internal::JSON::Request.new(
    base_url: request_options[:base_url],
    method: "GET",
    path: "v1/docs/#{URI.encode_uri_component(params[:doc_id].to_s)}/layers/#{URI.encode_uri_component(params[:layer_name].to_s)}/text/pages/#{URI.encode_uri_component(params[:pon].to_s)}/data",
    headers: headers,
    request_options: request_options
  )
  begin
    response = @client.send(request)
  rescue Net::HTTPRequestTimeout
    raise CloudPDF::Errors::TimeoutError
  end
  code = response.code.to_i
  if code.between?(200, 299)
    CloudPDF::Types::DocText200Response.load(response.body)
  else
    error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(response.body, code: code)
  end
end