Class: QasDockGem::RequestsAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/qas_dock_gem/services/requests_api_services.rb

Instance Method Summary collapse

Constructor Details

#initializeRequestsAPI

Returns a new instance of RequestsAPI.



6
7
8
9
10
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 6

def initialize
  require 'logger'
  require 'httparty'
  @logger = Logger.new($stdout)
end

Instance Method Details

#execute_delete(params) ⇒ Object



113
114
115
116
117
118
119
120
121
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 113

def execute_delete(params)
  formated_params = initialize_request(params)
  @logger.info("URI: #{params[:uri]}")
  @logger.info('Realizando DELETE')
  request = HTTParty.put(params[:uri], formated_params)
  @logger.info("URI Final: #{request.request.last_uri}")
  @logger.info("DELETE realizado \n")
  request
end

#execute_get(params) ⇒ Object



83
84
85
86
87
88
89
90
91
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 83

def execute_get(params)
  formated_params = initialize_request(params)
  @logger.info("URI: #{params[:uri]}")
  @logger.info('Realizando GET')
  request = HTTParty.get(params[:uri], formated_params)
  @logger.info("URI Final: #{request.request.last_uri}")
  @logger.info("GET realizado \n")
  request
end

#execute_patch(params) ⇒ Object



93
94
95
96
97
98
99
100
101
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 93

def execute_patch(params)
  formated_params = initialize_request(params)
  @logger.info("URI: #{params[:uri]}")
  @logger.info('Realizando PATCH')
  request = HTTParty.patch(params[:uri], formated_params)
  @logger.info("URI Final: #{request.request.last_uri}")
  @logger.info("PATCH realizado \n")
  request
end

#execute_post(params) ⇒ Object



73
74
75
76
77
78
79
80
81
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 73

def execute_post(params)
  formated_params = initialize_request(params)
  @logger.info("URI: #{params[:uri]}")
  @logger.info('Realizando POST')
  request = HTTParty.post(params[:uri], formated_params)
  @logger.info("URI Final: #{request.request.last_uri}")
  @logger.info("POST realizado \n")
  request
end

#execute_put(params) ⇒ Object



103
104
105
106
107
108
109
110
111
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 103

def execute_put(params)
  formated_params = initialize_request(params)
  @logger.info("URI: #{params[:uri]}")
  @logger.info('Realizando PUT')
  request = HTTParty.put(params[:uri], formated_params)
  @logger.info("URI Final: #{request.request.last_uri}")
  @logger.info("PUT realizado \n")
  request
end

#init_request_basic_auth(token, basic_auth, headers) ⇒ Object



58
59
60
61
62
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 58

def init_request_basic_auth(token, basic_auth, headers)
  final_headers = initialize_headers(token, headers)
  @logger.info("Headers: #{final_headers}")
  { headers: final_headers, basic_auth: basic_auth }
end

#init_request_body(token, payload, headers) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 49

def init_request_body(token, payload, headers)
  final_headers = initialize_headers(token, headers)
  payload = nil if payload.nil?
  @logger.info("Payload: #{payload.to_json}")
  @logger.info("Headers: #{final_headers}")

  { headers: final_headers, body: payload.nil? ? payload : payload.to_json }
end

#init_request_query(token, query, headers) ⇒ Object



64
65
66
67
68
69
70
71
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 64

def init_request_query(token, query, headers)
  final_headers = initialize_headers(token, headers)
  query = {} if query.nil?
  @logger.info("Query: #{query}")
  @logger.info("Headers: #{final_headers}")

  { headers: final_headers, query: query }
end

#initialize_headers(token, headers) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 12

def initialize_headers(token, headers)
  headers_default = { "cache-control": 'no-cache', "content-type": 'application/json' }

  # seta o campo authorization caso o token seja diferente de nulo

  headers_default['Authorization'] = token unless token.nil?

  # define os headers parametrizados como um Hash caso seja nulo

  headers = {} if headers.nil?

  # realiza o merge dos headers defaults + os headers parametrizados enviados

  headers_default.merge!(headers)

  # remove o campo content-type caso não seja informado

  if (headers_default[:"content-type"] == '') || headers_default[:"content-type"].nil?
    headers_default.delete(:"content-type")
  end

  # retorna os headers

  JSON.parse(headers_default.to_json)
end

#initialize_request(params) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/qas_dock_gem/services/requests_api_services.rb', line 33

def initialize_request(params)
  formated_params = nil
  if params.include?(:payload)
    formated_params = init_request_body(params[:token], params[:payload], params[:headers])
  elsif params.include?(:query)
    formated_params = init_request_query(params[:token], params[:query], params[:headers]) if params.include?(:query)
  elsif params.include?(:basic_auth)
    formated_params = init_request_basic_auth(params[:token], params[:basic_auth], params[:headers])
  else
    #codar

  end

  # retorna os params formatados para a request

  formated_params
end