kamigo 0.6.0 → 0.7.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da82bc8564ff3625ed8387a352a0dc7a4920453874b66c21ab5d8b901f0bbba9
|
4
|
+
data.tar.gz: 0440adead99e55dbc0bbe23372273f232cef39ddc42f1b43f15a5b38034272a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9fca66790101ba9b43e428bbcf5456bf270cdfd0d387b3e305a563444b8d42c168c2cf274151a0d026a7e7a7d0f1579c0e885d510b43827698da6731ccaff86
|
7
|
+
data.tar.gz: 7cba36eb5754912417c7265063eebcdd11483c7d87455c942933dcc1788d4611535fea3b9962705b14a6acde1f3b4142b6efb96847255e86e40c6ca6e4ab9e72
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'uri'
|
2
|
+
|
3
|
+
class KamigoController < ApplicationController
|
4
|
+
def kamiform(http_method, path, resource)
|
5
|
+
error_message = "please generate model Kamiform by the following command:\n\nrails g model kamiform platform_type source_group_id http_method path params:jsonb field\nrails db:migrate\n\n"
|
6
|
+
begin
|
7
|
+
Kamiform
|
8
|
+
rescue StandardError
|
9
|
+
raise error_message
|
10
|
+
end
|
11
|
+
|
12
|
+
return nil if resource.errors.empty?
|
13
|
+
|
14
|
+
error = resource.errors.first
|
15
|
+
|
16
|
+
Kamiform.create(
|
17
|
+
platform_type: params[:platform_type],
|
18
|
+
source_group_id: params[:source_group_id],
|
19
|
+
http_method: http_method,
|
20
|
+
path: path,
|
21
|
+
params: params,
|
22
|
+
field: "#{resource.class.to_s.downcase}.#{error[0]}"
|
23
|
+
)
|
24
|
+
|
25
|
+
{
|
26
|
+
type: 'text',
|
27
|
+
text: error[1]
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
@@ -16,7 +16,8 @@ class LineController < ApplicationController
|
|
16
16
|
private
|
17
17
|
|
18
18
|
def process_event(event)
|
19
|
-
http_method, path, request_params =
|
19
|
+
http_method, path, request_params = slot_filling(event)
|
20
|
+
http_method, path, request_params = language_understanding(event.message) if http_method.nil?
|
20
21
|
encoded_path = URI.encode(path)
|
21
22
|
request_params = event.platform_params.merge(request_params)
|
22
23
|
output = reserve_route(encoded_path, http_method: http_method, request_params: request_params, format: :line)
|
@@ -32,6 +33,33 @@ class LineController < ApplicationController
|
|
32
33
|
})
|
33
34
|
end
|
34
35
|
|
36
|
+
def slot_filling(event)
|
37
|
+
begin
|
38
|
+
Kamiform
|
39
|
+
rescue StandardError
|
40
|
+
return [nil, nil, nil]
|
41
|
+
end
|
42
|
+
form = Kamiform.find_by(
|
43
|
+
platform_type: event.platform_type,
|
44
|
+
source_group_id: event.source_group_id
|
45
|
+
)
|
46
|
+
return [nil, nil, nil] if form.nil?
|
47
|
+
|
48
|
+
http_method = form.http_method
|
49
|
+
path = form.path
|
50
|
+
request_params = form.params
|
51
|
+
|
52
|
+
# fill
|
53
|
+
if form.field['.'].nil?
|
54
|
+
request_params[form.field] = event.message
|
55
|
+
else
|
56
|
+
*head, tail = form.field.split('.')
|
57
|
+
request_params.dig(*head)[tail] = event.message
|
58
|
+
end
|
59
|
+
form.destroy
|
60
|
+
[http_method.upcase, path, request_params]
|
61
|
+
end
|
62
|
+
|
35
63
|
def language_understanding(text)
|
36
64
|
http_method = %w[GET POST PUT PATCH DELETE].find do |http_method|
|
37
65
|
text.start_with? http_method
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rails/generators/named_base'
|
2
|
+
require 'rails/generators/resource_helpers'
|
3
|
+
|
4
|
+
module Rails
|
5
|
+
module Generators
|
6
|
+
class CreateStateGenerator < NamedBase
|
7
|
+
include Rails::Generators::ResourceHelpers
|
8
|
+
namespace "devise"
|
9
|
+
argument :attributes, type: :string, default: 'kamigo_state'
|
10
|
+
|
11
|
+
class_option :timestamps, type: :boolean, default: true
|
12
|
+
|
13
|
+
def create_root_folder
|
14
|
+
path = File.join('app/views', controller_file_path)
|
15
|
+
empty_directory path unless File.directory?(path)
|
16
|
+
end
|
17
|
+
|
18
|
+
def copy_view_files
|
19
|
+
filenames.each do |filename|
|
20
|
+
template filename, File.join('app/views', controller_file_path, filename)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
protected
|
25
|
+
|
26
|
+
def attributes_names
|
27
|
+
[:id] + super
|
28
|
+
end
|
29
|
+
|
30
|
+
def filenames
|
31
|
+
[
|
32
|
+
"index.line.erb",
|
33
|
+
"show.line.erb",
|
34
|
+
"edit.liff.erb",
|
35
|
+
"new.liff.erb",
|
36
|
+
]
|
37
|
+
end
|
38
|
+
|
39
|
+
def full_attributes_list
|
40
|
+
if options[:timestamps]
|
41
|
+
attributes_list(attributes_names + %w(created_at updated_at))
|
42
|
+
else
|
43
|
+
attributes_list(attributes_names)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def attributes_list(attributes = attributes_names)
|
48
|
+
if self.attributes.any? {|attr| attr.name == 'password' && attr.type == :digest}
|
49
|
+
attributes = attributes.reject {|name| %w(password password_confirmation).include? name}
|
50
|
+
end
|
51
|
+
|
52
|
+
attributes.map { |a| ":#{a}"} * ', '
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/kamigo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kamigo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- etrex
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.13.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.13.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: kamiflex
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,10 +92,12 @@ files:
|
|
92
92
|
- Rakefile
|
93
93
|
- app/assets/config/kamigo_manifest.js
|
94
94
|
- app/controllers/concerns/reverse_route.rb
|
95
|
+
- app/controllers/kamigo_controller.rb
|
95
96
|
- app/controllers/line_controller.rb
|
96
97
|
- config/routes.rb
|
97
98
|
- lib/generators/rails/kamigo/USAGE
|
98
99
|
- lib/generators/rails/kamigo/kamigo_generator.rb
|
100
|
+
- lib/generators/rails/kamigo/state_generator.rb
|
99
101
|
- lib/generators/rails/kamigo/templates/edit.liff.erb
|
100
102
|
- lib/generators/rails/kamigo/templates/index.line.erb
|
101
103
|
- lib/generators/rails/kamigo/templates/new.liff.erb
|