kamigo 0.6.0 → 0.7.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:
|
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
|