kamigo 0.28.0 → 0.29.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
  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