jmessage 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e79ae88456d2339886f77c2b84f668924a9d29b
4
- data.tar.gz: 72f27f750a53db83d9482f10846fb53ee73791c1
3
+ metadata.gz: fe48aba88abceff77307ec91b14da5134db543d1
4
+ data.tar.gz: 2aecfbaa44dae26c36f3333a67b8bdf61007e896
5
5
  SHA512:
6
- metadata.gz: 7648c32302e1ff127ac0ff92a184fe50ccce699ab72eddbc3b6e8e9694ff7dc2d06aff2708826858b57708ba0db75125ec33c8c6202db22abc683d5409f6fdeb
7
- data.tar.gz: c82b8d9014e434c3bb8fddb89dee768e16a8acc1cffd7e694c05ac9c31be814f8fcf0048a7edc12eaeb7235596b7dfaeab0dd424c12b7f1156e5a6050023ff10
6
+ metadata.gz: ac6ddcf84fef5c7639ce4f79b595fb17d7cfe7ef9999fb64f297ee72359babb3715159b779adca6655c843a04fb758bfbe180506d1f72597dd415f5be56b9465
7
+ data.tar.gz: 246e76f12663816ae831f66b030a89ead68d600307fbd8ef047e9600f7c3fd2d6279b9147be1515e3aae7a1eb56373aed57a8285054fd1a608393dc6054c00b0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jmessage (0.1.0)
4
+ jmessage (0.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -5,59 +5,72 @@ module Jmessage
5
5
  class Http
6
6
  attr_accessor :conn, :response
7
7
 
8
- def initialize
8
+ def initialize(form=false)
9
9
  self.conn = Faraday.new(url: remote_path) do |faraday|
10
+ faraday.request :multipart if form
10
11
  faraday.request :url_encoded # form-encode POST params
11
12
  faraday.response :logger # log requests to STDOUT
13
+ faraday.headers = headers
12
14
  faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
13
15
  end
14
16
  end
15
17
 
16
18
  def get(uri)
17
- self.response = conn.get do |req|
18
- req.url uri
19
- req.headers['Content-Type'] = 'application/json'
20
- req.headers['Authorization'] = "Basic #{Jmessage::Sign.authorize}"
21
- req.options.timeout = 10
22
- end
19
+ self.response = conn.get { |req| set_req(req, uri) }
23
20
  parse_body
24
21
  end
25
22
 
26
23
  def post(uri, params = {})
27
- self.response = conn.post do |req|
28
- req.url uri
29
- req.headers['Content-Type'] = 'application/json'
30
- req.headers['Authorization'] = "Basic #{Jmessage::Sign.authorize}"
31
- req.options.timeout = 10
32
- req.body = JSON(params)
33
- end
24
+ self.response = conn.post { |req| set_req(req, uri, params) }
34
25
  parse_body
35
26
  end
36
27
 
37
28
  def put(uri, params = {})
38
- self.response = conn.put do |req|
39
- req.url uri
40
- req.headers['Content-Type'] = 'application/json'
41
- req.headers['Authorization'] = "Basic #{Jmessage::Sign.authorize}"
42
- req.options.timeout = 10
43
- req.body = JSON(params)
44
- end
29
+ self.response = conn.put { |req| set_req(req, uri, params) }
45
30
  end
46
31
 
47
32
  def delete(uri, params = {})
48
- self.response = conn.delete do |req|
33
+ self.response = conn.delete { |req| set_req(req, uri, params) }
34
+ end
35
+
36
+ def post_image(uri, params={})
37
+ self.response = conn.post do |req|
49
38
  req.url uri
50
- req.headers['Content-Type'] = 'application/json'
51
- req.headers['Authorization'] = "Basic #{Jmessage::Sign.authorize}"
52
- req.options.timeout = 10
53
- req.body = JSON(params)
39
+ req.body = { image: imageio(params[:image]) }
54
40
  end
41
+ parse_body
55
42
  end
56
43
 
57
44
  def parse_body
58
45
  JSON(response.body)
59
46
  end
60
47
 
48
+ def imageio(image)
49
+ if image.instance_of?(Tempfile)
50
+ return Faraday::UploadIO.new(image.path, image.content_type, tempfile_name(image))
51
+ end
52
+ Faraday::UploadIO.new(image.path, image.content_type)
53
+ end
54
+
55
+ def tempfile_name(file)
56
+ extension = file.content_type.split('/').last
57
+ extension = extension.downcase.eql?('jpeg') ? 'jpg' : extension
58
+ File.basename(file) + '.' + extension
59
+ end
60
+
61
+ def headers
62
+ {
63
+ 'Authorization' => "Basic #{Jmessage::Sign.authorize}",
64
+ 'Accept' => 'application/json'
65
+ }
66
+ end
67
+
68
+ def set_req(req, uri, params = {})
69
+ req.url uri
70
+ req.headers['Content-Type'] = 'application/json'
71
+ req.body = JSON(params) unless params.empty?
72
+ end
73
+
61
74
  def remote_path
62
75
  'https://api.im.jpush.cn'
63
76
  end
@@ -13,7 +13,7 @@ module Jmessage
13
13
  end
14
14
 
15
15
  # 获取用户列表
16
- def user_list
16
+ def user_list(params = {})
17
17
  start = params[:start] || 0
18
18
  count = params[:count] || 10
19
19
  Jmessage::Http.new.get("/v1/users?start=#{start}&count=#{count}")
@@ -52,8 +52,8 @@ module Jmessage
52
52
  end
53
53
 
54
54
  # 修改密码
55
- def update_pwd(username)
56
- Jmessage::Http.new.put("/v1/users/#{username}/password", params)
55
+ def update_pwd(username, new_pwd = '')
56
+ Jmessage::Http.new.put("/v1/users/#{username}/password", { new_password: new_pwd })
57
57
  end
58
58
 
59
59
  # 删除用户
@@ -82,8 +82,8 @@ module Jmessage
82
82
  end
83
83
 
84
84
  # 文件上传
85
- def upload_image(type, filename)
86
- Jmessage::Http.new.post("/v1/resource?type=#{type}", image: filename)
85
+ def upload_image(resource)
86
+ Jmessage::Http.new(true).post_image("/v1/resource?type=image", { image: resource })
87
87
  end
88
88
  end
89
89
  end
@@ -1,3 +1,3 @@
1
1
  module Jmessage
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jmessage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricky
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-04 00:00:00.000000000 Z
11
+ date: 2018-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler