Module: Uptime::Call

Defined in:
lib/uptime/call.rb

Class Method Summary collapse

Class Method Details

.checksObject



42
43
44
# File 'lib/uptime/call.rb', line 42

def self.checks
  process { Call.resource['checks'].get }
end

.create_check(attributes = {}) ⇒ Object



50
51
52
# File 'lib/uptime/call.rb', line 50

def self.create_check(attributes={})
  process { Call.resource['checks'].post(attributes) }
end

.destroy_check(token) ⇒ Object



58
59
60
# File 'lib/uptime/call.rb', line 58

def self.destroy_check(token)
  process { Call.resource["checks/#{token}"].delete }
end

.downtimes(token, filters = {}) ⇒ Object



46
47
48
# File 'lib/uptime/call.rb', line 46

def self.downtimes(token, filters={})
  process { Call.resource["checks/#{token}/downtimes"].get(params: filters) }
end

.execute(resource, method, payload = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/uptime/call.rb', line 10

def self.execute(resource, method, payload={})
  puts "username: #{Uptime.configuration.username}"
  puts "password; #{Uptime.configuration.password}"
  puts "api_endpoint: #{Uptime.configuration.api_endpoint}"
  username = Uptime.configuration.username
  password = Uptime.configuration.password
  api_endpoint = Uptime.configuration.api_endpoint
  puts "resource: #{resource}"
  endpoint = api_endpoint + resource
  puts "endpoint: #{endpoint}"
  puts "method: #{method}"

  RestClient::Request.execute(
                                method: method,
                                url: endpoint, 
                                user: username,
                                password: password,
                                payload: payload
                              )
rescue RestClient::BadRequest, RestClient::Unauthorized, RestClient::ResourceNotFound => e
  result = (JSON.parse(e.response) rescue {})
  # raise Uptime::Error.new(result['error'] || e.reponse)
  raise e.response

end

.processObject



62
63
64
65
66
67
# File 'lib/uptime/call.rb', line 62

def self.process
  JSON.parse yield
rescue RestClient::BadRequest, RestClient::Unauthorized, RestClient::ResourceNotFound => e
  result = (JSON.parse(e.response) rescue {})
  raise Uptime::Error.new(result['error'] || e.reponse)
end

.resourceObject



37
38
39
40
# File 'lib/uptime/call.rb', line 37

def self.resource
  endpoint = 'https://Uptime.io/api/'
  RestClient::Resource.new endpoint, headers: { 'X-API-KEY' => Uptime.configuration.api_endpoint }
end

.update_check(token, attributes = {}) ⇒ Object



54
55
56
# File 'lib/uptime/call.rb', line 54

def self.update_check(token, attributes={})
  process { Call.resource["checks/#{token}"].put(attributes) }
end