class TsubaisoAPI

..

Public Class Methods

new(options = {}) click to toggle source
# File lib/tsubaiso_api.rb, line 6
def initialize(options = {})
  @base_url = options[:base_url] || 'https://tsubaiso.net'
  @access_token = options[:access_token]
end

Public Instance Methods

create(resource, params = {}) click to toggle source
# File lib/tsubaiso_api.rb, line 19
def create(resource, params = {})
  api_request(url_parse(resource + '/create'), 'POST', params)
end
destroy(resource, params = {}) click to toggle source
# File lib/tsubaiso_api.rb, line 27
def destroy(resource, params = {})
  api_request(url_parse(resource + '/destroy'), 'POST', params)
end
get(url, params = {}) click to toggle source
# File lib/tsubaiso_api.rb, line 31
def get(url, params = {})
  api_request(url_parse(url), 'GET', params)
end
list(resource, params = {}) click to toggle source
# File lib/tsubaiso_api.rb, line 11
def list(resource, params = {})
  api_request(url_parse(resource + '/list'), 'GET', params)
end
post(url, params = {}) click to toggle source
# File lib/tsubaiso_api.rb, line 35
def post(url, params = {})
  api_request(url_parse(url), 'POST', params)
end
show(resource, params = {}) click to toggle source
# File lib/tsubaiso_api.rb, line 15
def show(resource, params = {})
  api_request(url_parse(resource + "/show/#{params[:id]}"), 'GET', params)
end
update(resource, params = {}) click to toggle source
# File lib/tsubaiso_api.rb, line 23
def update(resource, params = {})
  api_request(url_parse(resource + '/update'), 'POST', params)
end

Private Instance Methods

api_request(uri, http_verb, params) click to toggle source
# File lib/tsubaiso_api.rb, line 41
def api_request(uri, http_verb, params)
  http = Net::HTTP.new(uri.host, uri.port)
  initheader = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
  http.use_ssl = true if @base_url =~ /^https/
  if http_verb == 'GET'
    request = Net::HTTP::Get.new(uri.path, initheader)
  else
    request = Net::HTTP::Post.new(uri.path, initheader)
  end
  request['Access-Token'] = @access_token
  request.body = params.to_json
  response = http.request(request)
  if response.body
    begin
      { status: response.code, json: JSON.parse(response.body) }
    rescue
      response.body
    end
  else
    { status: response.code, json: {}.to_json }
  end
end
url_parse(end_point) click to toggle source
# File lib/tsubaiso_api.rb, line 64
def url_parse(end_point)
  URI.parse(@base_url + end_point)
end