Class: ABBYY::Cloud::Operations::Base

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/abbyy/cloud/operations/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.http_method(value = nil) ⇒ Object



14
15
16
17
# File 'lib/abbyy/cloud/operations/base.rb', line 14

def http_method(value = nil)
  @http_method = value.to_s.capitalize if value
  @http_method || "Post"
end


23
24
25
# File 'lib/abbyy/cloud/operations/base.rb', line 23

def link(value = nil)
  value ? @link = value : @link
end

.path(&block) ⇒ Object



19
20
21
# File 'lib/abbyy/cloud/operations/base.rb', line 19

def path(&block)
  block ? @path = block : @path
end

.request_body(struct = nil, &block) ⇒ Object



31
32
33
# File 'lib/abbyy/cloud/operations/base.rb', line 31

def request_body(struct = nil, &block)
  provide_struct :@request_body, struct, &block
end

.request_query(struct = nil, &block) ⇒ Object



35
36
37
# File 'lib/abbyy/cloud/operations/base.rb', line 35

def request_query(struct = nil, &block)
  provide_struct :@request_query, struct, &block
end

.request_type(value = nil) ⇒ Object



27
28
29
# File 'lib/abbyy/cloud/operations/base.rb', line 27

def request_type(value = nil)
  value ? (@request_type = value) : (@request_type || :json)
end

.response_body(struct = nil, &block) ⇒ Object



43
44
45
# File 'lib/abbyy/cloud/operations/base.rb', line 43

def response_body(struct = nil, &block)
  provide_struct :@response_body, struct, &block
end

.response_type(value = nil) ⇒ Object



39
40
41
# File 'lib/abbyy/cloud/operations/base.rb', line 39

def response_type(value = nil)
  value ? (@response_type = value) : (@response_type || :json)
end

Instance Method Details

#call(file = nil, **data) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/abbyy/cloud/operations/base.rb', line 69

def call(file = nil, **data)
  mash      = Hashie::Mash.new(data)
  url       = mash.instance_eval(&path)
  multipart = prepare_multipart(file, **data) if file
  body      = prepare_request_body(multipart, data)
  query     = prepare_request_query(data)
  headers   = prepare_request_headers(multipart)
  res       = connection.call http_method, url, body: body,
                                                query: query,
                                                headers: headers
  handle_response_body res
end