class ReisbalansHR::Resources

Attributes

oauth2_client[R]
path[R]

Public Class Methods

new(oauth2_client, path) click to toggle source
# File lib/reisbalans_hr/resources.rb, line 5
def initialize(oauth2_client, path)
  @oauth2_client = oauth2_client
  @path = path
end

Public Instance Methods

create(params, &block) click to toggle source
# File lib/reisbalans_hr/resources.rb, line 18
def create(params, &block)
  post base_url, {body: params}, &block
end
index() click to toggle source
# File lib/reisbalans_hr/resources.rb, line 10
def index
  get base_url
end
show(id) click to toggle source
# File lib/reisbalans_hr/resources.rb, line 14
def show(id)
  get [base_url, id].join('/')
end
update(id, params, &block) click to toggle source
# File lib/reisbalans_hr/resources.rb, line 22
def update(id, params, &block)
  put [base_url, id].join('/'), {body: params}, &block
end

Private Instance Methods

access_token() click to toggle source
# File lib/reisbalans_hr/resources.rb, line 28
def access_token
  oauth2_client.client_credentials.get_token('scope' => 'hr')
end
assert_status_code!(response, code) click to toggle source
# File lib/reisbalans_hr/resources.rb, line 54
def assert_status_code!(response, code)
  fail "Expected status code #{code}, but got: #{response.inspect}" unless response.status == code
end
base_url() click to toggle source
# File lib/reisbalans_hr/resources.rb, line 50
def base_url
  "/api/hr#{path}"
end
get(url) click to toggle source
# File lib/reisbalans_hr/resources.rb, line 32
def get(url)
  response = access_token.get(url)
  assert_status_code!(response, 200)
  JSON.parse(response.body)
end
post(url, opts) { |response| ... } click to toggle source
# File lib/reisbalans_hr/resources.rb, line 38
def post(url, opts, &_block)
  response = access_token.post(url, opts)
  yield response if block_given?
  assert_status_code!(response, 204)
end
put(url, opts) { |response| ... } click to toggle source
# File lib/reisbalans_hr/resources.rb, line 44
def put(url, opts, &_block)
  response = access_token.put(url, opts)
  yield response if block_given?
  assert_status_code!(response, 204)
end
resource_name() click to toggle source
# File lib/reisbalans_hr/resources.rb, line 58
def resource_name
  self.class.name.demodulize.underscore.humanize.downcase
end