kamigo 0.28.0 → 0.29.0

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
  SHA256:
3
- metadata.gz: 183742309b2ea81e02c1fc03e035de18a95d12816415faa08191432f0ce4775f
4
- data.tar.gz: c8523ce01ed074009a82d44f3e86c9c188a46fb7240dae833eedc2e8a63f9a26
3
+ metadata.gz: c960a4cef3a73b6bbce83a82b4738ff2d5d8260fa94ff2b9551d6b9b154e783c
4
+ data.tar.gz: 163f336ec395f7b3b17e21ce2a9f6d499458007a71a6b57b22cf972febf343c0
5
5
  SHA512:
6
- metadata.gz: 6c23e1abd2a0432ef3a723abcc041402ddd46f39049872f34f024bf2bcc6f8a8d9888541b05d8d3cc8d3728b288d54407bc6bff8e819bf9ec296258eccb6caaa
7
- data.tar.gz: 7da6014ce051f0047983098b2191aa5938962a0628751e700c2003223afd449325c6ce73e70c546fbd32f6a3fcba2f94469d34859f6b322492635eb5abc55e98
6
+ metadata.gz: b5fef886fe7cb04aefb5b39de5285d81753c0f367ea118b87539ef5c9a444a2c40a5d240efbd021a36eb15c501024cd563ba45984aa08602cfbdaf1a43875ab1
7
+ data.tar.gz: 5132fcb754bb8b44edad84e0b61fa27ede46e5f57cb3215961a60bfaf38c00eca44eebc0ea986e6ad2ca8a3846406fe1a66d3e3979387ea9c54403529676ec25
@@ -0,0 +1,15 @@
1
+ module Kamigo
2
+ module EventProcessors
3
+ class DefaultMessageProcessor
4
+ attr_accessor :request
5
+ attr_accessor :form_authenticity_token
6
+
7
+ def process(event)
8
+ if event.platform_type == "line"
9
+ return nil if Kamigo.line_default_message.nil?
10
+ return Kamigo.line_default_message
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,30 @@
1
+ module Kamigo
2
+ module EventProcessors
3
+ class DefaultPathProcessor
4
+ attr_accessor :request
5
+ attr_accessor :form_authenticity_token
6
+
7
+ def process(event)
8
+ return nil if Kamigo.default_path.nil?
9
+ reserve_route(URI::Parser.new.escape(Kamigo.default_path), http_method: Kamigo.default_http_method, request_params: event.platform_params, format: :line)
10
+ end
11
+
12
+ private
13
+
14
+ def reserve_route(path, http_method: "GET", request_params: nil, format: nil)
15
+ path = "/#{path}" unless path.start_with? "/"
16
+
17
+ @request.request_method = http_method
18
+ @request.path_info = path
19
+ @request.format = format if format.present?
20
+ @request.request_parameters = request_params if request_params.present?
21
+
22
+ # req = Rack::Request.new
23
+ # env = {Rack::RACK_INPUT => StringIO.new}
24
+
25
+ res = Rails.application.routes.router.serve(@request)
26
+ res[2].body if res[2].respond_to?(:body)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -16,9 +16,6 @@ module Kamigo
16
16
  request_params = event.platform_params.merge(request_params)
17
17
  output = reserve_route(encoded_path, http_method: http_method, request_params: request_params, format: :line)
18
18
  return output if output.present?
19
-
20
- return nil if Kamigo.default_path.nil?
21
- reserve_route(URI::Parser.new.escape(Kamigo.default_path), http_method: Kamigo.default_http_method, request_params: request_params, format: :line)
22
19
  end
23
20
 
24
21
  private
@@ -10,7 +10,7 @@ module Kamigo
10
10
  parser = EventParsers::LineEventParser.new
11
11
  events = parser.parse_events(@request)
12
12
  events.each do |event|
13
- output = process_event(event) || Kamigo.line_default_message
13
+ output = process_event(event)
14
14
  responser = EventResponsers::LineEventResponser.new
15
15
  response = responser.response_event(event, output)
16
16
  end
@@ -1,3 +1,3 @@
1
1
  module Kamigo
2
- VERSION = '0.28.0'.freeze
2
+ VERSION = '0.29.0'.freeze
3
3
  end
data/lib/kamigo.rb CHANGED
@@ -24,7 +24,11 @@ module Kamigo
24
24
  @@default_http_method = "GET"
25
25
 
26
26
  mattr_accessor :line_event_processors
27
- @@line_event_processors = [EventProcessors::RailsRouterProcessor.new]
27
+ @@line_event_processors = [
28
+ EventProcessors::RailsRouterProcessor.new,
29
+ EventProcessors::DefaultPathProcessor.new,
30
+ EventProcessors::DefaultMessageProcessor.new
31
+ ]
28
32
 
29
33
  # env
30
34
  mattr_writer :line_messaging_api_channel_id
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kamigo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.0
4
+ version: 0.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - etrex
@@ -121,6 +121,8 @@ files:
121
121
  - lib/kamigo/clients/line_client.rb
122
122
  - lib/kamigo/engine.rb
123
123
  - lib/kamigo/event_parsers/line_event_parser.rb
124
+ - lib/kamigo/event_processors/default_message_processor.rb
125
+ - lib/kamigo/event_processors/default_path_processor.rb
124
126
  - lib/kamigo/event_processors/rails_router_processor.rb
125
127
  - lib/kamigo/event_responsers/line_event_responser.rb
126
128
  - lib/kamigo/events/basic_event.rb