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