class Tvteka::API

Public Instance Methods

get(request_type, url, params, &block) click to toggle source
# File lib/tvteka/api.rb, line 4
def get(request_type, url, params, &block)
  cookies = params.delete(:cookies)
  params = params.to_a.map {|p| "#{p[0]}=#{p[1]}" }.join("&")
  request = create_request(url + "?" + params, :get)
  add_cookies(request, cookies) if cookies
  create_task(request_type, request, &block).resume
end

Private Instance Methods

add_cookies(request, cookies) click to toggle source
# File lib/tvteka/api.rb, line 31
def add_cookies(request, cookies)
  cookies.each do |k, v|
    request.setValue("#{k}=#{v}", forHTTPHeaderField: "Cookie")
  end
end
config() click to toggle source
# File lib/tvteka/api.rb, line 14
def config
  NSURLSessionConfiguration.defaultSessionConfiguration
end
create_request(url, method) click to toggle source
# File lib/tvteka/api.rb, line 22
def create_request(url, method)
  url = NSURL.URLWithString(url)
  request = NSMutableURLRequest.requestWithURL(url)
  request.addValue("application/vnd.tvp.xbmc+json", forHTTPHeaderField: "Content-Type")
  request.addValue("application/vnd.tvp.xbmc+json", forHTTPHeaderField: "Accept")
  request.setHTTPMethod(method.to_s.upcase)
  request
end
create_task(request_type, request, &block) click to toggle source
# File lib/tvteka/api.rb, line 37
def create_task(request_type, request, &block)
  if block_given?
    session.dataTaskWithRequest(request, completionHandler: -> (data, response, error) {
      block.call(APIResponse.new(request_type, data, response, error))
    })
  else
    session.dataTaskWithRequest(request)
  end
end
session() click to toggle source
# File lib/tvteka/api.rb, line 18
def session
  NSURLSession.sessionWithConfiguration(config)
end