Class: Jmessage::Http
- Inherits:
-
Object
- Object
- Jmessage::Http
- Defined in:
- lib/jmessage/http.rb
Instance Attribute Summary collapse
-
#conn ⇒ Object
Returns the value of attribute conn.
-
#response ⇒ Object
Returns the value of attribute response.
Instance Method Summary collapse
- #delete(uri, params = {}) ⇒ Object
- #get(uri) ⇒ Object
- #headers ⇒ Object
- #imageio(image) ⇒ Object
-
#initialize(form = false) ⇒ Http
constructor
A new instance of Http.
- #parse_body ⇒ Object
- #post(uri, params = {}) ⇒ Object
- #post_image(uri, params = {}) ⇒ Object
- #put(uri, params = {}) ⇒ Object
- #remote_path ⇒ Object
- #set_req(req, uri, params = {}) ⇒ Object
- #tempfile_name(file) ⇒ Object
Constructor Details
#initialize(form = false) ⇒ Http
Returns a new instance of Http.
8 9 10 11 12 13 14 15 16 |
# 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 |
Instance Attribute Details
#conn ⇒ Object
Returns the value of attribute conn.
6 7 8 |
# File 'lib/jmessage/http.rb', line 6 def conn @conn end |
#response ⇒ Object
Returns the value of attribute response.
6 7 8 |
# File 'lib/jmessage/http.rb', line 6 def response @response end |
Instance Method Details
#delete(uri, params = {}) ⇒ Object
32 33 34 |
# File 'lib/jmessage/http.rb', line 32 def delete(uri, params = {}) self.response = conn.delete { |req| set_req(req, uri, params) } end |
#get(uri) ⇒ Object
18 19 20 21 |
# File 'lib/jmessage/http.rb', line 18 def get(uri) self.response = conn.get { |req| set_req(req, uri) } parse_body end |
#headers ⇒ Object
61 62 63 64 65 66 |
# File 'lib/jmessage/http.rb', line 61 def headers { 'Authorization' => "Basic #{Jmessage::Sign.}", 'Accept' => 'application/json' } end |
#imageio(image) ⇒ Object
48 49 50 51 52 53 |
# 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 ⇒ Object
44 45 46 |
# File 'lib/jmessage/http.rb', line 44 def parse_body JSON(response.body) end |
#post(uri, params = {}) ⇒ Object
23 24 25 26 |
# 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 = {}) ⇒ Object
36 37 38 39 40 41 42 |
# 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 = {}) ⇒ Object
28 29 30 |
# File 'lib/jmessage/http.rb', line 28 def put(uri, params = {}) self.response = conn.put { |req| set_req(req, uri, params) } end |
#remote_path ⇒ Object
74 75 76 |
# File 'lib/jmessage/http.rb', line 74 def remote_path 'https://api.im.jpush.cn' end |
#set_req(req, uri, params = {}) ⇒ Object
68 69 70 71 72 |
# 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) ⇒ Object
55 56 57 58 59 |
# 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 |