Module: ForemanPatch::Ticket::API

Included in:
AffectedItems, ChangeRequest
Defined in:
app/services/foreman_patch/ticket/api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



4
5
6
# File 'app/services/foreman_patch/ticket/api.rb', line 4

def request
  @request
end

Instance Method Details

#create_request(method, path, params = {}, payload = nil) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/services/foreman_patch/ticket/api.rb', line 40

def create_request(method, path, params = {}, payload = nil)
  @response = nil

  args = {
    method: method,
    url: URI.join(Setting[:ticket_api_host], path).to_s,
    headers: {
      accept: :json,
      content_type: :json,
      params: params,
    },
    user: Setting[:ticket_api_user],
    password: Setting[:ticket_api_password],
  }

  args[:payload] = payload.to_json unless payload.nil?
  args[:proxy] = proxy

  @request = RestClient::Request.new(args)
end

#delete(path) ⇒ Object



36
37
38
# File 'app/services/foreman_patch/ticket/api.rb', line 36

def delete(path)
  create_request(:delete, path)
end

#get(path, params = {}) ⇒ Object



24
25
26
# File 'app/services/foreman_patch/ticket/api.rb', line 24

def get(path, params = {})
  create_request(:get, path, params)
end

#hostObject



6
7
8
# File 'app/services/foreman_patch/ticket/api.rb', line 6

def host
  Setting[:ticket_api_host]
end

#post(path, payload, params = {}) ⇒ Object



28
29
30
# File 'app/services/foreman_patch/ticket/api.rb', line 28

def post(path, payload, params = {})
  create_request(:post, path, params, payload)
end

#proxyObject



18
19
20
21
22
# File 'app/services/foreman_patch/ticket/api.rb', line 18

def proxy
  return nil if Setting[:ticket_api_proxy].blank?

  HttpProxy.friendly.find(Setting[:ticket_api_proxy])&.url
end

#put(path, payload, params = {}) ⇒ Object



32
33
34
# File 'app/services/foreman_patch/ticket/api.rb', line 32

def put(path, payload, params = {})
  create_request(:put, path, params, payload)
end

#responseObject



10
11
12
# File 'app/services/foreman_patch/ticket/api.rb', line 10

def response
  @response ||= send_request
end

#send_requestObject



61
62
63
64
65
66
67
# File 'app/services/foreman_patch/ticket/api.rb', line 61

def send_request
  @response = JSON.parse(@request.execute)
rescue RestClient::ExceptionWithResponse => error
  Rails.logger.error(error.response)
rescue => error
  Rails.logger.error(error)
end

#urlObject



14
15
16
# File 'app/services/foreman_patch/ticket/api.rb', line 14

def url
  request.uri.to_s
end