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