Class: Bob::API
- Inherits:
-
Object
show all
- Defined in:
- lib/bob/api/api.rb
Direct Known Subclasses
Employee::Documents, Employee::EquityGrants, Employee::Invites, Employee::Salaries, Employee::Trainings, Employee::VariablePayments, Employees, MetaData::CompanyFields, MetaData::CompanyLists, OnboardingWizards, Reports, TimeOff
Constant Summary
collapse
- BASE_URL =
'https://api.hibob.com'
Class Method Summary
collapse
Class Method Details
.build_url(endpoint, params = {}) ⇒ Object
52
53
54
55
56
57
|
# File 'lib/bob/api/api.rb', line 52
def self.build_url(endpoint, params = {})
url = "#{BASE_URL}/#{Bob.api_version}/#{endpoint}"
url += "?#{URI.encode_www_form(params)}" unless params.empty?
url
end
|
45
46
47
48
49
50
|
# File 'lib/bob/api/api.rb', line 45
def self.
{
Accept: 'application/json',
'Content-Type': 'application/json'
}
end
|
.create_csv(content) ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/bob/api/api.rb', line 59
def self.create_csv(content)
file_name = SecureRandom.alphanumeric(15)
content.gsub!("\r", '').gsub!('', '')
splitted = content.split("\n")
CSV.open("tmp/#{file_name}.csv", 'wb') do |csv|
csv << splitted.shift.split(',')
splitted.each do |row|
csv << CSV.parse_line(row)
end
end
"tmp/#{file_name}.csv"
end
|
.delete(endpoint) ⇒ Object
27
28
29
30
31
|
# File 'lib/bob/api/api.rb', line 27
def self.delete(endpoint)
url = build_url(endpoint)
response = RestClient.delete(url)
response.code
end
|
.get(endpoint, params = {}, csv_response: false) ⇒ Object
13
14
15
16
17
18
19
|
# File 'lib/bob/api/api.rb', line 13
def self.get(endpoint, params = {}, csv_response: false)
url = build_url(endpoint, params)
response = RestClient.get(url, )
return create_csv(response.body) if csv_response
JSON.parse(response.body)
end
|
39
40
41
42
43
|
# File 'lib/bob/api/api.rb', line 39
def self.
{
Authorization: "Basic #{Base64.strict_encode64("#{Bob.access_user_name}:#{Bob.access_token}")}"
}
end
|
.post(endpoint, params = {}) ⇒ Object
21
22
23
24
25
|
# File 'lib/bob/api/api.rb', line 21
def self.post(endpoint, params = {})
url = build_url(endpoint)
response = RestClient.post(url, params.to_json, .merge())
response.code
end
|
.put(endpoint, params = {}) ⇒ Object
33
34
35
36
37
|
# File 'lib/bob/api/api.rb', line 33
def self.put(endpoint, params = {})
url = build_url(endpoint)
response = RestClient.put(url, params.to_json, .merge())
response.code
end
|