weixin_rails_middleware 1.0.2 → 1.0.3

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: bd7bcc751768e004541fe3255c61e12ec9e82269
4
- data.tar.gz: cf259c502985e73347a1c80cc59680adeaf09c2e
3
+ metadata.gz: 381fcd2eb890939d2b4cd3c6738aa2ef2ce38982
4
+ data.tar.gz: 1eaf214d92befdd0e3646eba489264526fabdf90
5
5
  SHA512:
6
- metadata.gz: 88f952a9729b8622b6ac8473949c30b099317d27bb38335960b6aed4cca319e5ec4380ca83fbb870e18545ac1e701cd454be32967ddff1324ddf34c942347544
7
- data.tar.gz: f7e1bb19106a7e0d89e9ddc110c87ba98dbacea640d98be4eb1a547fab1dafe1509b4e17bcf8fe3cd1028410a9b84d62d9ababcae4a2d4b7944e2baea4a29ec2
6
+ metadata.gz: 80698d8806763968e4c432b143c3229a67fd6740ff7b8b53596fe763d06cd668e5e34847151d5df6c04d485d460ed24eec3ddd8cf89ce7e326e81fb33a41cb50
7
+ data.tar.gz: 3b08680f1058874ec2f6e39798ad1cc05b5075abc998d6423398ef06afe098e40057068cafdfa9c657284793f589a16096779ed29ce2426bb4aad4645bf25d20
@@ -1,10 +1,10 @@
1
1
  module WeixinRailsMiddleware
2
2
  class WeixinController < ApplicationController
3
-
4
3
  include WeixinMessageHelper
5
4
 
6
5
  skip_before_filter :verify_authenticity_token
7
6
  before_action :check_weixin_params, only: [:index, :reply]
7
+ before_action :set_weixin_public_account, :set_weixin_message, only: :reply
8
8
 
9
9
  def index
10
10
  render text: params[:echostr]
@@ -59,5 +59,26 @@ module WeixinRailsMiddleware
59
59
  token_model_instance
60
60
  end
61
61
 
62
+ # e.g. will generate +@weixin_public_account+
63
+ def set_weixin_public_account
64
+ return nil if WeixinRailsMiddleware.config.token_string.present?
65
+ @weixin_public_account ||= token_model_instance
66
+ end
67
+
68
+ def set_weixin_message
69
+ # Get the current_message
70
+ @weixin_message ||= current_weixin_message
71
+ end
72
+
73
+ # take the weixin params
74
+ def current_weixin_params
75
+ request.body.read
76
+ end
77
+
78
+ # return a message class with current_weixin_params
79
+ def current_weixin_message
80
+ Message.factory(current_weixin_params)
81
+ end
82
+
62
83
  end
63
84
  end
@@ -1,27 +1,39 @@
1
1
  WeixinRailsMiddleware::WeixinController.class_eval do
2
2
 
3
+ # There are two instance: @weixin_message,
4
+ # @weixin_public_account(token_model instance if you setup, otherwise return nil)
3
5
  def reply
4
- # Get the current_message
5
- current_message = current_weixin_message
6
-
7
- case current_message.MsgType
8
- when 'text'
9
- # text message handler
10
- # render xml: reply_text_message("ToUserName", "FromUserName", "your Message")
11
- when 'image'
6
+ render xml: send("response_#{@weixin_message.MsgType}_message", {})
7
+ end
8
+
9
+ private
10
+
11
+ def response_text_message(options={})
12
+ reply_text_message("Your Message: #{@weixin_message.Content}")
13
+
14
+ end
15
+
16
+ def response_location_message(options={})
17
+ reply_text_message("Your Location: #{@weixin_message.Location_X}, #{@weixin_message.Location_Y}")
18
+ end
19
+
20
+ def response_image_message(options={})
12
21
  # image message handler
13
- when 'location'
14
- # location message handler
15
- when 'link'
22
+ end
23
+
24
+ def response_link_message(options={})
16
25
  # link message handler
17
- when 'event'
26
+ end
27
+
28
+ def response_event_message(options={})
18
29
  # event messge handler
19
- when 'voice'
30
+ end
31
+
32
+ def response_voice_message(options={})
20
33
  # voice message handler
21
- when 'video'
34
+ end
35
+
36
+ def response_video_message(options={})
22
37
  # video message handler
23
- else
24
- render xml: reply_text_message(current_message.ToUserName, current_message.FromUserName, 'Unknow message')
25
38
  end
26
- end
27
39
  end
@@ -19,4 +19,4 @@ module WeixinRailsMiddleware
19
19
  end
20
20
 
21
21
  end
22
- end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module WeixinRailsMiddleware
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -1,10 +1,13 @@
1
1
  module WeixinRailsMiddleware
2
2
  module WeixinMessageHelper
3
3
 
4
- def reply_text_message(from, to, content)
4
+ # e.g.
5
+ # reply_text_message(@weixin_message.ToUserName, @weixin_message.FromUserName, "Your Message: #{@weixin_message.Content}")
6
+ # Or reply_text_message("Your Message: #{@weixin_message.Content}")
7
+ def reply_text_message(from=nil, to=nil, content)
5
8
  message = TextReplyMessage.new
6
- message.ToUserName = to
7
- message.FromUserName = from
9
+ message.FromUserName = from || @weixin_message.ToUserName
10
+ message.ToUserName = to || @weixin_message.FromUserName
8
11
  message.Content = content
9
12
  message.to_xml
10
13
  end
@@ -19,10 +22,10 @@ module WeixinRailsMiddleware
19
22
  end
20
23
 
21
24
  # music = generate_music
22
- def reply_music_message(from, to, music)
25
+ def reply_music_message(from=nil, to=nil, music)
23
26
  message = MusicReplyMessage.new
24
- message.ToUserName = to
25
- message.FromUserName = from
27
+ message.FromUserName = from || @weixin_message.ToUserName
28
+ message.ToUserName = to || @weixin_message.FromUserName
26
29
  message.Music = music
27
30
  message.to_xml
28
31
  end
@@ -37,10 +40,10 @@ module WeixinRailsMiddleware
37
40
  end
38
41
 
39
42
  # articles = [generate_article]
40
- def reply_news_message(from, to, articles)
43
+ def reply_news_message(from=nil, to=nil, articles)
41
44
  message = NewsReplyMessage.new
42
- message.ToUserName = to
43
- message.FromUserName = from
45
+ message.FromUserName = from || @weixin_message.ToUserName
46
+ message.ToUserName = to || @weixin_message.FromUserName
44
47
  message.Articles = articles
45
48
  message.ArticleCount = articles.count
46
49
  message.to_xml
@@ -54,8 +57,10 @@ module WeixinRailsMiddleware
54
57
  vodeo
55
58
  end
56
59
 
57
- def replay_video_message(video)
60
+ def replay_video_message(from=nil, to=nil, video)
58
61
  message = VideoReplyMessage.new
62
+ message.FromUserName = from || @weixin_message.ToUserName
63
+ message.ToUserName = to || @weixin_message.FromUserName
59
64
  message.Video = video
60
65
  message.to_xml
61
66
  end
@@ -66,8 +71,10 @@ module WeixinRailsMiddleware
66
71
  voice
67
72
  end
68
73
 
69
- def reply_voice_message(voice)
74
+ def reply_voice_message(from=nil, to=nil, voice)
70
75
  message = VoiceReplyMessage.new
76
+ message.FromUserName = from || @weixin_message.ToUserName
77
+ message.ToUserName = to || @weixin_message.FromUserName
71
78
  message.Voice = voice
72
79
  message.to_xml
73
80
  end
@@ -78,20 +85,13 @@ module WeixinRailsMiddleware
78
85
  image
79
86
  end
80
87
 
81
- def reply_imgage_message(image)
88
+ def reply_imgage_message(from=nil, to=nil, image)
82
89
  message = ImageReplyMessage.new
90
+ message.FromUserName = from || @weixin_message.ToUserName
91
+ message.ToUserName = to || @weixin_message.FromUserName
83
92
  message.Image = image
84
- end
85
-
86
- # take the weixin params
87
- def current_weixin_params
88
- request.body.read
89
- end
90
-
91
- # return a message class with current_weixin_params
92
- def current_weixin_message
93
- Message.factory(current_weixin_params)
93
+ message.to_xml
94
94
  end
95
95
 
96
96
  end
97
- end
97
+ end
@@ -0,0 +1,14 @@
1
+ module WeixinRailsMiddleware
2
+ module WeixinServerUrl
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ def weixin_server_url
7
+ "http test"
8
+ end
9
+ end
10
+ end
11
+ end
12
+
13
+
14
+
@@ -5,6 +5,7 @@ require "weixin_rails_middleware/reply_message"
5
5
  require "weixin_rails_middleware/weixin_message_helper"
6
6
  require "weixin_rails_middleware/weixin_token_form_helper"
7
7
  require "weixin_rails_middleware/unique_token_helper"
8
+ require "weixin_rails_middleware/weixin_server_url"
8
9
 
9
10
  module WeixinRailsMiddleware
10
11
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weixin_rails_middleware
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - lanrion
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-08 00:00:00.000000000 Z
11
+ date: 2014-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -101,6 +101,8 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
+ - MIT-LICENSE
105
+ - Rakefile
104
106
  - app/controllers/weixin_rails_middleware/application_controller.rb
105
107
  - app/controllers/weixin_rails_middleware/weixin_controller.rb
106
108
  - config/routes.rb
@@ -108,6 +110,7 @@ files:
108
110
  - lib/generators/templates/weixin_controller.rb
109
111
  - lib/generators/weixin_rails_middleware/install_generator.rb
110
112
  - lib/tasks/weixin_rails_middleware_tasks.rake
113
+ - lib/weixin_rails_middleware.rb
111
114
  - lib/weixin_rails_middleware/configuration.rb
112
115
  - lib/weixin_rails_middleware/engine.rb
113
116
  - lib/weixin_rails_middleware/message.rb
@@ -115,10 +118,8 @@ files:
115
118
  - lib/weixin_rails_middleware/unique_token_helper.rb
116
119
  - lib/weixin_rails_middleware/version.rb
117
120
  - lib/weixin_rails_middleware/weixin_message_helper.rb
121
+ - lib/weixin_rails_middleware/weixin_server_url.rb
118
122
  - lib/weixin_rails_middleware/weixin_token_form_helper.rb
119
- - lib/weixin_rails_middleware.rb
120
- - MIT-LICENSE
121
- - Rakefile
122
123
  homepage: http://github.com/lanrion/weixin_rails_middleware
123
124
  licenses: []
124
125
  metadata: {}
@@ -138,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
139
  version: '0'
139
140
  requirements: []
140
141
  rubyforge_project:
141
- rubygems_version: 2.0.3
142
+ rubygems_version: 2.2.2
142
143
  signing_key:
143
144
  specification_version: 4
144
145
  summary: weixin_rails_middleware for integration weixin