xi_wechat_corp 1.1.0 → 1.2.0

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: 4c1aa27990d8c3bc1126d1bb0834499278e13bf9
4
- data.tar.gz: ff85e7794cd9ecb49222cf67026b636e743ac8e8
3
+ metadata.gz: ea696c0f425a8c09f218831490f7066e0b1a8be6
4
+ data.tar.gz: cd8160b093ab9e98023d9a518bd98e6e0dbb1a5a
5
5
  SHA512:
6
- metadata.gz: 2458e53ca6922f28df0b621b400464c58c6474feec8a033e9041e0b5480282832dc9cab419072e9fabfdc3a33d1f4650b3314341354b949d732eb3003cd51f32
7
- data.tar.gz: 09a61afcb3804a7f58721c8c613692ca8324a2cceb9e271546124cb4cd03e17d82ee2bcb9ad4795f86f419f25dc82f764a2deb91f4ed4a09d0008999cb7f4c7b
6
+ metadata.gz: 4f279c4577eefb16d2e8810a29001e7b9d9868ca4e19568ebdc49ba5fce29cdbbae889be8488e28a0c3cb41cdc08a44a91aff9bf6d4a389df268edd2902d0e7f
7
+ data.tar.gz: ac876379962b1bd3195be9bf17a9df6c0803c7f27aec20af5be6ce994f5e57b9f67b1eef3c58fe1931dff3602e7562302a024266e1dfa93abb2588e56d40619f
data/README.md CHANGED
@@ -39,6 +39,20 @@ logic for `POST` requests. All post params can be get through rack env
39
39
  `xi_wechat_corp.params`, including decrypted params. The handler just return
40
40
  the plain XML, The middleware will encrypt response and sign it.
41
41
 
42
+ ### Used in Grape
43
+
44
+ require 'xi_wechat_corp'
45
+ class MyAPI < Grape::API
46
+ use XiWechatCorp::Callback::Rack do |req|
47
+ corp_id 'wx1234'
48
+ token 'secret'
49
+ aes_key 'secret'
50
+ end
51
+
52
+ parser :xml, XiWechatCorp::Callback::Grape::Parser
53
+ formatter :xml, XiWechatCorp::Callback::Grape::Formatter
54
+ end
55
+
42
56
  ### Handle Callback Manually
43
57
 
44
58
  Verify and decrypt Request
@@ -3,6 +3,9 @@ module XiWechatCorp
3
3
  autoload :Request, 'xi_wechat_corp/callback/request'
4
4
  autoload :Response, 'xi_wechat_corp/callback/response'
5
5
  autoload :Rack, 'xi_wechat_corp/callback/rack'
6
- autoload :GrapeXmlParser, 'xi_wechat_corp/callback/grape_xml_parser'
6
+ module Grape
7
+ autoload :Parser, 'xi_wechat_corp/callback/grape'
8
+ autoload :Formatter, 'xi_wechat_corp/callback/grape'
9
+ end
7
10
  end
8
11
  end
@@ -0,0 +1,28 @@
1
+ module XiWechatCorp
2
+ module Callback
3
+ module Grape
4
+ # Ensure that XiWechatCorp::Callback::Rack middleware has bee added.
5
+ #
6
+ # parser :xml, XiWechatCorp::Callback::Grape::Parser
7
+ module Parser
8
+ def self.call(object, env)
9
+ if env['xi_wechat_corp.params']
10
+ env['xi_wechat_corp.params']
11
+ else
12
+ Grape::Parser::Xml.call(object, env)
13
+ end
14
+ end
15
+ end
16
+
17
+ # Set this as the default XML formater in Grape
18
+ #
19
+ # formatter :xml, XiWechatCorp::Callback::Grape::Formatter
20
+ module Formatter
21
+ def self.call(object, env)
22
+ return object.to_xml(root: 'xml', skip_instruct: true, indent: 0) if object.respond_to?(:to_xml)
23
+ fail Grape::Exceptions::InvalidFormatter.new(object.class, 'xml')
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module XiWechatCorp
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xi_wechat_corp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Yang
@@ -186,7 +186,7 @@ files:
186
186
  - lib/xi_wechat_corp/api/connection.rb
187
187
  - lib/xi_wechat_corp/callback.rb
188
188
  - lib/xi_wechat_corp/callback/config.rb
189
- - lib/xi_wechat_corp/callback/grape_xml_parser.rb
189
+ - lib/xi_wechat_corp/callback/grape.rb
190
190
  - lib/xi_wechat_corp/callback/rack.rb
191
191
  - lib/xi_wechat_corp/callback/request.rb
192
192
  - lib/xi_wechat_corp/callback/response.rb
@@ -1,18 +0,0 @@
1
- module XiWechatCorp
2
- module Callback
3
- # Ensure that XiWechatCorp::Callback::Rack middleware has bee added.
4
- #
5
- # parser :xml, XiWechatCorp::Callback::GrapeXmlParser
6
- module GrapeXmlParser
7
- class << self
8
- def call(object, env)
9
- if env['xi_wechat_corp.params']
10
- env['xi_wechat_corp.params']
11
- else
12
- Grape::Parser::Xml.call(object, env)
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end