class ShiftPlanning::Connection
Attributes
http[R]
Public Class Methods
new(key)
click to toggle source
# File lib/shift_planning/connection.rb, line 4 def initialize(key) @key = key @token = nil @http = Faraday.new(url: "http://www.shiftplanning.com") do |conn| conn.request :url_encoded conn.response :json conn.response :logger conn.adapter Faraday.default_adapter end end
Public Instance Methods
authenticated?()
click to toggle source
# File lib/shift_planning/connection.rb, line 34 def authenticated? @token && !@token.empty? end
call(method, command, params = {})
click to toggle source
# File lib/shift_planning/connection.rb, line 17 def call(method, command, params = {}) request_params = { request: params.merge( method: method, module: command ), output: 'json' } response = http.post('/api/', data: JSON::generate(signed_params(request_params))).body ShiftPlanning::ApiError.parse(response['status']) parse_data response do |data| @token = data['token'] if data.has_key?('token') end end
Private Instance Methods
parse_data(response_data, &block)
click to toggle source
# File lib/shift_planning/connection.rb, line 40 def parse_data(response_data, &block) data = response_data block.call(data) if block_given? data['data'] end
signed_params(params)
click to toggle source
# File lib/shift_planning/connection.rb, line 46 def signed_params(params) params.merge(key: @key, token: @token) end