class Roqua::CoreApi::Sessions::AuthSession

Attributes

core_site[R]
default_timeout[R]

Public Class Methods

new(core_site: ENV.fetch('CORE_SITE'), timeout: nil) click to toggle source

timeout for requests in seconds

# File lib/roqua/core_api/sessions/auth_session.rb, line 9
def initialize(core_site: ENV.fetch('CORE_SITE'), timeout: nil)
  @core_site = core_site
  @default_timeout = timeout
end

Public Instance Methods

delete(path, timeout: default_timeout, **params) click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 35
def delete(path, timeout: default_timeout, **params)
  HTTParty.delete full_url_for(path),
                  query_string_options('DELETE', path, params, timeout: timeout)
end
get(path, timeout: default_timeout, **params) click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 14
def get(path, timeout: default_timeout, **params)
  perform_request_or_fail do
    HTTParty.get full_url_for(path),
                 query_string_options('GET', path, params, timeout: timeout)
  end
end
patch(path, timeout: default_timeout, **params) click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 28
def patch(path, timeout: default_timeout, **params)
  perform_request_or_fail do
    HTTParty.patch full_url_for(path),
                   json_body_options('PATCH', path, params, timeout: timeout)
  end
end
post(path, timeout: default_timeout, **params) click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 21
def post(path, timeout: default_timeout, **params)
  perform_request_or_fail do
    HTTParty.post full_url_for(path),
                  json_body_options('POST', path, params, timeout: timeout)
  end
end

Private Instance Methods

api_base() click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 72
def api_base
  '/api/v1'
end
basic_auth() click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 80
def basic_auth
end
full_url_for(path) click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 68
def full_url_for(path)
  core_site + api_base + path + '.json'
end
headers(_request_method, _path, _params) click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 76
def headers(_request_method, _path, _params)
  {}
end
json_body_options(request_method, path, params, timeout:) click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 54
def json_body_options(request_method, path, params, timeout:)
  {headers: headers(request_method, path, params).merge('Content-Type' => 'application/json'),
   body: params.to_json,
   basic_auth: basic_auth,
   timeout: timeout}
end
perform_request_or_fail() { || ... } click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 42
def perform_request_or_fail(&block)
  response = yield
  case response.code
  when 200..299, 422
    response
  when 401
    access_denied(response)
  else
    fail(response.parsed_response.to_s || 'error')
  end
end
query_string_options(request_method, path, params, timeout:) click to toggle source
# File lib/roqua/core_api/sessions/auth_session.rb, line 61
def query_string_options(request_method, path, params, timeout:)
  {headers: headers(request_method, path, params),
   query: params,
   basic_auth: basic_auth,
   timeout: timeout}
end