class Jmessage::Http

Attributes

conn[RW]
response[RW]

Public Class Methods

new(form=false) click to toggle source
# File lib/jmessage/http.rb, line 8
def initialize(form=false)
  self.conn = Faraday.new(url: remote_path) do |faraday|
    faraday.request  :multipart if form
    faraday.request  :url_encoded             # form-encode POST params
    faraday.response :logger                  # log requests to STDOUT
    faraday.headers = headers
    faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
  end
end

Public Instance Methods

delete(uri, params = {}) click to toggle source
# File lib/jmessage/http.rb, line 32
def delete(uri, params = {})
  self.response = conn.delete { |req| set_req(req, uri, params) }
end
get(uri) click to toggle source
# File lib/jmessage/http.rb, line 18
def get(uri)
  self.response = conn.get { |req| set_req(req, uri) }
  parse_body
end
headers() click to toggle source
# File lib/jmessage/http.rb, line 61
def headers
  {
    'Authorization' => "Basic #{Jmessage::Sign.authorize}",
    'Accept' => 'application/json'
  }
end
imageio(image) click to toggle source
# File lib/jmessage/http.rb, line 48
def imageio(image)
  if image.instance_of?(Tempfile)
    return Faraday::UploadIO.new(image.path, image.content_type, tempfile_name(image))
  end
  Faraday::UploadIO.new(image.path, image.content_type)
end
parse_body() click to toggle source
# File lib/jmessage/http.rb, line 44
def parse_body
  JSON(response.body)
end
post(uri, params = {}) click to toggle source
# File lib/jmessage/http.rb, line 23
def post(uri, params = {})
  self.response = conn.post { |req| set_req(req, uri, params) }
  parse_body
end
post_image(uri, params={}) click to toggle source
# File lib/jmessage/http.rb, line 36
def post_image(uri, params={})
  self.response = conn.post do |req|
    req.url uri
    req.body = { image: imageio(params[:image]) }
  end
  parse_body
end
put(uri, params = {}) click to toggle source
# File lib/jmessage/http.rb, line 28
def put(uri, params = {})
  self.response = conn.put { |req| set_req(req, uri, params) }
end
remote_path() click to toggle source
# File lib/jmessage/http.rb, line 74
def remote_path
  'https://api.im.jpush.cn'
end
set_req(req, uri, params = {}) click to toggle source
# File lib/jmessage/http.rb, line 68
def set_req(req, uri, params = {})
  req.url uri
  req.headers['Content-Type'] = 'application/json'
  req.body = JSON(params) unless params.empty?
end
tempfile_name(file) click to toggle source
# File lib/jmessage/http.rb, line 55
def tempfile_name(file)
  extension = file.content_type.split('/').last
  extension = extension.downcase.eql?('jpeg') ? 'jpg' : extension
  File.basename(file) + '.' + extension
end