class Slacklet::Store

Constants

VERSION

Public Class Methods

new(base_url, token) click to toggle source
# File lib/slacklet/store.rb, line 11
            def initialize(base_url, token)
  @token    = token
  @base_url = base_url
end

Public Instance Methods

delete(key) click to toggle source
# File lib/slacklet/store.rb, line 26
def delete(key)
  request(:delete, "/records/#{key}")
end
get(key) click to toggle source
# File lib/slacklet/store.rb, line 16
def get(key)
  request(:get, "/records/#{key}")["value"]
rescue RecordNotFound
  return nil
end
set(key, value) click to toggle source
# File lib/slacklet/store.rb, line 22
def set(key, value)
  request(:put, "/records/#{key}", value: value)
end

Private Instance Methods

request(method, path, params = {}) click to toggle source
# File lib/slacklet/store.rb, line 32
def request(method, path, params = {})
  resp = Faraday.send(method, "#{@base_url}#{path}", params) do |req|
    req.headers["x-store-token"] = @token
  end

  data = JSON.load(resp.body)

  if resp.success?
    return data
  end

  case resp.status
  when 404
    raise RecordNotFound.new(data["message"])
  else
    raise Error.new(data["message"])
  end
end