weixin_rails_middleware 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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