28 lines
646 B
Ruby
28 lines
646 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 get(path, params = {})
|
|
res = Faraday.get endpoint_url(path), params, headers
|
|
# TODO handle unsuccessful responses with no valid JSON body
|
|
JSON.parse(res.body)
|
|
end
|
|
|
|
def post(path, payload)
|
|
res = Faraday.post endpoint_url(path), payload.to_json, headers
|
|
# TODO handle unsuccessful responses with no valid JSON body
|
|
JSON.parse(res.body)
|
|
end
|
|
end
|