30 lines
567 B
Ruby
30 lines
567 B
Ruby
class RestApiService < ApplicationService
|
|
private
|
|
|
|
def base_url
|
|
raise NotImplementedError
|
|
end
|
|
|
|
def headers
|
|
raise NotImplementedError
|
|
end
|
|
|
|
def endpoint_url(path)
|
|
"#{base_url}/#{path.gsub(/^\//, '')}"
|
|
end
|
|
|
|
def parse_responses?
|
|
true
|
|
end
|
|
|
|
def get(path, params = {})
|
|
res = Faraday.get endpoint_url(path), params, headers
|
|
parse_responses? ? JSON.parse(res.body) : res
|
|
end
|
|
|
|
def post(path, payload)
|
|
res = Faraday.post endpoint_url(path), payload.to_json, headers
|
|
parse_responses? ? JSON.parse(res.body) : res
|
|
end
|
|
end
|