docomo-nlu 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -1
- data/docomo-nlu.gemspec +1 -0
- data/lib/docomo-nlu/management/{account.rb → V23/account.rb} +4 -6
- data/lib/docomo-nlu/management/{aiml_base.rb → V23/aiml_base.rb} +31 -5
- data/lib/docomo-nlu/management/{base.rb → V23/base.rb} +5 -4
- data/lib/docomo-nlu/management/{bot.rb → V23/bot.rb} +2 -2
- data/lib/docomo-nlu/management/{config.rb → V23/config.rb} +2 -2
- data/lib/docomo-nlu/management/{default_predicate.rb → V23/default_predicate.rb} +2 -2
- data/lib/docomo-nlu/management/{map.rb → V23/map.rb} +2 -2
- data/lib/docomo-nlu/management/{multipart_base.rb → V23/multipart_base.rb} +1 -1
- data/lib/docomo-nlu/management/{ng_word.rb → V23/ng_word.rb} +2 -2
- data/lib/docomo-nlu/management/{ok_word.rb → V23/ok_word.rb} +2 -2
- data/lib/docomo-nlu/management/{organization.rb → V23/organization.rb} +2 -2
- data/lib/docomo-nlu/management/{organization_member.rb → V23/organization_member.rb} +2 -2
- data/lib/docomo-nlu/management/{predicate_name.rb → V23/predicate_name.rb} +2 -2
- data/lib/docomo-nlu/management/{project.rb → V23/project.rb} +2 -2
- data/lib/docomo-nlu/management/{project_member.rb → V23/project_member.rb} +2 -2
- data/lib/docomo-nlu/management/{property.rb → V23/property.rb} +2 -2
- data/lib/docomo-nlu/management/{provider.rb → V23/provider.rb} +2 -2
- data/lib/docomo-nlu/management/{scenario.rb → V23/scenario.rb} +5 -5
- data/lib/docomo-nlu/management/{scenario_project.rb → V23/scenario_project.rb} +2 -2
- data/lib/docomo-nlu/management/{scenario_util.rb → V23/scenario_util.rb} +2 -2
- data/lib/docomo-nlu/management/{set.rb → V23/set.rb} +2 -2
- data/lib/docomo-nlu/management/{task_project.rb → V23/task_project.rb} +2 -2
- data/lib/docomo-nlu/management/V26/account.rb +31 -0
- data/lib/docomo-nlu/management/V26/aiml_base.rb +199 -0
- data/lib/docomo-nlu/management/V26/base.rb +88 -0
- data/lib/docomo-nlu/management/V26/bot.rb +18 -0
- data/lib/docomo-nlu/management/V26/config.rb +25 -0
- data/lib/docomo-nlu/management/V26/default_predicate.rb +15 -0
- data/lib/docomo-nlu/management/V26/map.rb +10 -0
- data/lib/docomo-nlu/management/V26/multipart_base.rb +83 -0
- data/lib/docomo-nlu/management/V26/ng_word.rb +10 -0
- data/lib/docomo-nlu/management/V26/ok_word.rb +10 -0
- data/lib/docomo-nlu/management/V26/organization.rb +23 -0
- data/lib/docomo-nlu/management/V26/organization_member.rb +15 -0
- data/lib/docomo-nlu/management/V26/predicate_name.rb +15 -0
- data/lib/docomo-nlu/management/V26/project.rb +16 -0
- data/lib/docomo-nlu/management/V26/project_member.rb +15 -0
- data/lib/docomo-nlu/management/V26/property.rb +10 -0
- data/lib/docomo-nlu/management/V26/provider.rb +17 -0
- data/lib/docomo-nlu/management/V26/scenario.rb +29 -0
- data/lib/docomo-nlu/management/V26/scenario_project.rb +10 -0
- data/lib/docomo-nlu/management/V26/scenario_util.rb +30 -0
- data/lib/docomo-nlu/management/V26/set.rb +10 -0
- data/lib/docomo-nlu/management/V26/task_project.rb +20 -0
- data/lib/docomo-nlu/management.rb +48 -22
- data/lib/docomo-nlu/version.rb +1 -1
- metadata +59 -23
@@ -0,0 +1,199 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# download([:aiml,:dat,:archive],scenarioId)
|
4
|
+
# GET /{projectId}/bots/{botId}/aiml/{scenarioId}
|
5
|
+
# GET /{projectId}/bots/{botId}/dat
|
6
|
+
# GET /{projectId}/bots/{botId}/archive
|
7
|
+
|
8
|
+
# upload([:aiml,:dat,:archive],filepath)
|
9
|
+
# /{projectId}/bots/{botId}/aiml
|
10
|
+
# /{projectId}/bots/{botId}/dat
|
11
|
+
# /{projectId}/bots/{botId}/archive
|
12
|
+
|
13
|
+
# Not supported
|
14
|
+
# GET /{projectId}/bots/{botId}/archive/aiml
|
15
|
+
|
16
|
+
# require 'rubyzip'
|
17
|
+
|
18
|
+
require "tempfile"
|
19
|
+
module DocomoNlu
|
20
|
+
module Management::V26
|
21
|
+
class AIMLBase < Base
|
22
|
+
## For AIML
|
23
|
+
|
24
|
+
def download(extra_path = "")
|
25
|
+
prefix_options[:bot_id] ||= botId
|
26
|
+
@attributes[:file] = self.class.download(prefix_options, extra_path).file
|
27
|
+
end
|
28
|
+
|
29
|
+
def upload(file, type = :aiml)
|
30
|
+
prefix_options[:bot_id] ||= botId
|
31
|
+
prefix_options[:method] ||= type
|
32
|
+
self.class.upload(file, prefix_options)
|
33
|
+
end
|
34
|
+
|
35
|
+
def compile
|
36
|
+
prefix_options[:bot_id] ||= botId
|
37
|
+
self.class.compile(prefix_options)
|
38
|
+
end
|
39
|
+
|
40
|
+
def transfer
|
41
|
+
prefix_options[:bot_id] ||= botId
|
42
|
+
self.class.deploy_request(prefix_options)
|
43
|
+
end
|
44
|
+
|
45
|
+
def deploy
|
46
|
+
prefix_options[:bot_id] ||= botId
|
47
|
+
self.class.deploy(prefix_options)
|
48
|
+
end
|
49
|
+
|
50
|
+
## For FAQ
|
51
|
+
|
52
|
+
def upload_userdic(file)
|
53
|
+
prefix_options[:bot_id] ||= botId
|
54
|
+
prefix_options[:method] = "userDic"
|
55
|
+
self.class.upload(file, prefix_options)
|
56
|
+
end
|
57
|
+
|
58
|
+
def upload_stopkey(file)
|
59
|
+
prefix_options[:bot_id] ||= botId
|
60
|
+
prefix_options[:method] = "stopkey"
|
61
|
+
self.class.upload(file, prefix_options)
|
62
|
+
end
|
63
|
+
|
64
|
+
def download_stopkey
|
65
|
+
prefix_options[:bot_id] ||= botId
|
66
|
+
prefix_options[:method] = "stopkey"
|
67
|
+
@attributes[:stopkey] = self.class.download(prefix_options).file
|
68
|
+
end
|
69
|
+
|
70
|
+
def upload_truthlist(file)
|
71
|
+
prefix_options[:bot_id] ||= botId
|
72
|
+
prefix_options[:method] = "truthlist"
|
73
|
+
self.class.upload(file, prefix_options)
|
74
|
+
end
|
75
|
+
|
76
|
+
def download_truthlist
|
77
|
+
prefix_options[:bot_id] ||= botId
|
78
|
+
prefix_options[:method] = "truthlist"
|
79
|
+
@attributes[:truthlist] = self.class.download(prefix_options).file
|
80
|
+
end
|
81
|
+
|
82
|
+
def upload_entry(file)
|
83
|
+
prefix_options[:bot_id] ||= botId
|
84
|
+
prefix_options[:method] = "entry"
|
85
|
+
self.class.upload(file, prefix_options)
|
86
|
+
end
|
87
|
+
|
88
|
+
def check_faq_status(method)
|
89
|
+
prefix_options[:bot_id] ||= botId
|
90
|
+
prefix_options[:method] = method
|
91
|
+
self.class.check_status(:faq, "#{FileModel.collection_path(prefix_options)}/status")
|
92
|
+
end
|
93
|
+
|
94
|
+
class << self
|
95
|
+
def download(prefix_options, extra_path = "")
|
96
|
+
conn = Faraday.new(url: site.to_s, ssl: { verify: false }) do |builder|
|
97
|
+
builder.adapter :net_http
|
98
|
+
end
|
99
|
+
conn.headers["Authorization"] = access_token
|
100
|
+
response = conn.get("#{FileModel.collection_path(prefix_options)}/#{extra_path}")
|
101
|
+
|
102
|
+
if check_response(response)
|
103
|
+
instantiate_record({}, prefix_options).tap do |record|
|
104
|
+
record.file = Tempfile.open(["docomo-nlu", ".#{prefix_options[:method]}"]) do |f|
|
105
|
+
f.write response.body.force_encoding("UTF-8")
|
106
|
+
f
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def upload(file, prefix_options)
|
113
|
+
conn = Faraday.new(url: site.to_s, ssl: { verify: false }) do |builder|
|
114
|
+
builder.request :multipart # マルチパートでデータを送信
|
115
|
+
builder.request :url_encoded
|
116
|
+
builder.adapter :net_http
|
117
|
+
end
|
118
|
+
conn.headers["Authorization"] = access_token
|
119
|
+
params = {
|
120
|
+
uploadFile: Faraday::UploadIO.new(file.path, "text/plain"),
|
121
|
+
}
|
122
|
+
response = conn.put FileModel.collection_path(prefix_options), params
|
123
|
+
check_response(response)
|
124
|
+
end
|
125
|
+
|
126
|
+
def compile(prefix_options)
|
127
|
+
return if deploy_request(:compile, prefix_options) != ""
|
128
|
+
end
|
129
|
+
|
130
|
+
def transfer(prefix_options)
|
131
|
+
return if deploy_request(:transfer, prefix_options) != ""
|
132
|
+
end
|
133
|
+
|
134
|
+
def deploy_request(method, prefix_options)
|
135
|
+
response_body = JSON.parse(connection.post(Scenario.element_path(method, prefix_options), "", headers).body)
|
136
|
+
# Sometimes, API returns wrong url, replace correct path.
|
137
|
+
URI.parse(response_body["statusUri"]).path.gsub!(/NLPManagementAPI/, "management/v2.6")
|
138
|
+
end
|
139
|
+
|
140
|
+
def deploy(prefix_options)
|
141
|
+
# compile and status check
|
142
|
+
compile_status = false
|
143
|
+
check_path = deploy_request(:compile, prefix_options)
|
144
|
+
while check_path && compile_status != "Completed"
|
145
|
+
sleep(0.2)
|
146
|
+
compile_status = check_status(:compile, check_path)
|
147
|
+
raise ActiveResource::ServerError if %w[ErrorFinish NotCompiled].include?(compile_status)
|
148
|
+
end
|
149
|
+
|
150
|
+
# transfer and status check
|
151
|
+
transfer_status = false
|
152
|
+
check_path = deploy_request(:transfer, prefix_options)
|
153
|
+
while check_path && transfer_status != "Completed"
|
154
|
+
sleep(0.2)
|
155
|
+
transfer_status = check_status(:transfer, check_path)
|
156
|
+
raise ActiveResource::ServerError if %w[ErrorFinish NotTransfered].include?(transfer_status)
|
157
|
+
end
|
158
|
+
true
|
159
|
+
end
|
160
|
+
|
161
|
+
def check_status(method, path)
|
162
|
+
case method
|
163
|
+
when :compile, :faq then JSON.parse(connection.get(path, headers).body)["status"]
|
164
|
+
when :transfer then JSON.parse(connection.get(path, headers).body)["transferStatusResponses"][0]["status"]
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
# def generate_file(response, method)
|
169
|
+
# case method
|
170
|
+
# when :aiml, :dat then
|
171
|
+
# Tempfile.open(["docomo-nlu", ".#{prefix_options[:method].to_s}"]) do |f|
|
172
|
+
# f.write response.body.force_encoding("UTF-8")
|
173
|
+
# f
|
174
|
+
# end
|
175
|
+
# when :zip then
|
176
|
+
# zip_file = Tempfile.new(["docomo-nlu", ".#{prefix_options[:method].to_s.gsub(/archive/, "zip")}"])
|
177
|
+
# Zip::OutputStream.open(zip_file.path) do |zip|
|
178
|
+
# @targets.each do |target|
|
179
|
+
# zip.put_next_entry("#{target.filename}.pdf")
|
180
|
+
# zip.print Net::HTTP.get URI.parse(target.url)
|
181
|
+
# end
|
182
|
+
# end
|
183
|
+
# Zip::File.open_buffer(file.read) do |zf|
|
184
|
+
# zf.each do |entry|
|
185
|
+
# p entry.name # ファイル名
|
186
|
+
# p entry.get_input_stream.read # ファイルの中身
|
187
|
+
# end
|
188
|
+
# end
|
189
|
+
# end
|
190
|
+
# end
|
191
|
+
end
|
192
|
+
|
193
|
+
class FileModel < Base
|
194
|
+
self.element_name = ""
|
195
|
+
self.prefix = "/management/v2.6/projects/:project_id/bots/:bot_id/:method"
|
196
|
+
end
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "net/http"
|
4
|
+
|
5
|
+
module DocomoNlu
|
6
|
+
module Management::V26
|
7
|
+
class Base < ActiveResource::Base
|
8
|
+
## For Dynamically generated headers via http://rmosolgo.github.io/blog/2014/02/05/dynamically-generated-headers-for-activeresource-requests/
|
9
|
+
cattr_accessor :static_headers
|
10
|
+
cattr_accessor :access_token
|
11
|
+
|
12
|
+
## Dynamic headers
|
13
|
+
self.static_headers = headers
|
14
|
+
|
15
|
+
## Admin Accesstoken
|
16
|
+
self.access_token = DocomoNlu.config.admin_access_token
|
17
|
+
|
18
|
+
## Setting Endpoint.
|
19
|
+
self.site = DocomoNlu.config.nlu_host
|
20
|
+
|
21
|
+
## Remove format in path (remove .json)
|
22
|
+
self.include_format_in_path = false
|
23
|
+
|
24
|
+
self.format = :json
|
25
|
+
|
26
|
+
## Get NLPManagement's AccessToken.
|
27
|
+
def login(accountName, password)
|
28
|
+
request_body = { accountName: accountName, password: password }.to_json
|
29
|
+
response_body = JSON.parse(connection.post("/management/v2.6/login", request_body, self.class.headers).body)
|
30
|
+
self.access_token = response_body["accessToken"]
|
31
|
+
end
|
32
|
+
|
33
|
+
## Delete NLPManagement's AccessToken.
|
34
|
+
def logout
|
35
|
+
res = connection.get("/management/v2.6/logout", self.class.headers) if access_token.present?
|
36
|
+
raise ActiveResource::BadRequest, "Invalid access token" unless res
|
37
|
+
|
38
|
+
self.access_token = nil
|
39
|
+
true
|
40
|
+
end
|
41
|
+
|
42
|
+
## Override. Insert generated id to parameter 'id' after save or create
|
43
|
+
def id_from_response(response)
|
44
|
+
ActiveSupport::JSON.decode(response.body)["#{self.class.to_s.split("::").last.downcase!}Id"] if response.body.present?
|
45
|
+
end
|
46
|
+
|
47
|
+
class << self
|
48
|
+
def instantiate_collection(collection, original_params = {}, prefix_options = {})
|
49
|
+
if collection.is_a?(Hash)
|
50
|
+
collection = if collection.empty? || collection.first[1].nil?
|
51
|
+
[]
|
52
|
+
else
|
53
|
+
[collection]
|
54
|
+
end
|
55
|
+
elsif collection[0].is_a?(String)
|
56
|
+
collection = [{ params: collection }]
|
57
|
+
end
|
58
|
+
super
|
59
|
+
end
|
60
|
+
|
61
|
+
def instantiate_record(record, prefix_options = {})
|
62
|
+
record = record[0] if record.is_a?(Array)
|
63
|
+
resource_id = record["#{to_s.split("::").last.downcase!}Id"]
|
64
|
+
record["id"] = resource_id if resource_id
|
65
|
+
super
|
66
|
+
end
|
67
|
+
|
68
|
+
def headers
|
69
|
+
new_headers = static_headers.clone
|
70
|
+
new_headers["Authorization"] = access_token
|
71
|
+
new_headers
|
72
|
+
end
|
73
|
+
|
74
|
+
def check_response(response)
|
75
|
+
case response.status
|
76
|
+
when 400 then raise ActiveResource::BadRequest, response
|
77
|
+
when 401 then raise ActiveResource::UnauthorizedAccess, response
|
78
|
+
when 403 then raise ActiveResource::ForbiddenAccess, response
|
79
|
+
when 404 then raise ActiveResource::ResourceNotFound, response
|
80
|
+
when 409 then raise ActiveResource::ResourceConflict, response
|
81
|
+
when 503 then raise ActiveResource::ServerError, response
|
82
|
+
when 200..204 then true
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class Bot < AIMLBase
|
6
|
+
self.element_name = "bots"
|
7
|
+
self.prefix = "/management/v2.6/projects/:project_id/"
|
8
|
+
|
9
|
+
# Parameter for create
|
10
|
+
# {
|
11
|
+
# "botId": "botid",
|
12
|
+
# "scenarioProjectId", "DSU",
|
13
|
+
# "language": "ja-JP",
|
14
|
+
# "description": "hello"
|
15
|
+
# }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class Config < Base
|
6
|
+
self.element_name = "configs"
|
7
|
+
self.prefix = "/management/v2.6/projects/:project_id/bots/:bot_id/"
|
8
|
+
|
9
|
+
# {
|
10
|
+
# "dialogTimeout": 300,
|
11
|
+
# "replyTimeout": 300,
|
12
|
+
# "xxxxUrl": "http://xxx",
|
13
|
+
# "yyyyUrl": "http://xxx",
|
14
|
+
# "sensitiveInfo": "aa.bb, ccc.ddd...",
|
15
|
+
# "sraix" : [true|false],
|
16
|
+
# "taskServerUrl": "http://xxx"
|
17
|
+
# }
|
18
|
+
|
19
|
+
def destroy(keys)
|
20
|
+
self.id = keys.join(",")
|
21
|
+
super()
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class DefaultPredicate < Base
|
6
|
+
self.element_name = "defaultPredicates"
|
7
|
+
self.prefix = "/management/v2.6/projects/:project_id/bots/:bot_id/"
|
8
|
+
|
9
|
+
def destroy(keys)
|
10
|
+
self.id = keys.join(",")
|
11
|
+
super()
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "tempfile"
|
4
|
+
module DocomoNlu
|
5
|
+
module Management::V26
|
6
|
+
class MultipartBase < Base
|
7
|
+
def save
|
8
|
+
self.class.create(attributes[:file], prefix_options)
|
9
|
+
end
|
10
|
+
|
11
|
+
def destroy
|
12
|
+
self.id = try(:category)
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
class << self
|
17
|
+
def create(file, prefix_options)
|
18
|
+
check_prefix_options(prefix_options)
|
19
|
+
raise ActiveResource::BadRequest, "" unless file.instance_of?(File)
|
20
|
+
|
21
|
+
upload(file, prefix_options)
|
22
|
+
end
|
23
|
+
|
24
|
+
def find(*arguments)
|
25
|
+
scope = arguments.slice!(0)
|
26
|
+
options = arguments.slice!(0) || {}
|
27
|
+
|
28
|
+
prefix_options, = split_options(options[:params])
|
29
|
+
check_prefix_options(prefix_options)
|
30
|
+
|
31
|
+
case scope
|
32
|
+
when :all then download(nil, prefix_options)
|
33
|
+
else download(scope, prefix_options)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def where(clauses = {})
|
38
|
+
raise ArgumentError, "expected a clauses Hash, got #{clauses.inspect}" unless clauses.is_a? Hash
|
39
|
+
|
40
|
+
category = clauses[:category]
|
41
|
+
find(category, params: clauses)
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def download(category = nil, prefix_options)
|
47
|
+
extention = category.blank? ? ".zip" : ".map"
|
48
|
+
|
49
|
+
conn = Faraday.new(url: site.to_s, ssl: { verify: false }) do |builder|
|
50
|
+
builder.adapter :net_http
|
51
|
+
end
|
52
|
+
conn.headers["Authorization"] = access_token
|
53
|
+
|
54
|
+
response = conn.get(element_path(category, prefix_options))
|
55
|
+
|
56
|
+
if check_response(response)
|
57
|
+
instantiate_record({}, prefix_options).tap do |record|
|
58
|
+
record.file = Tempfile.open(["docomo-nlu", extention]) do |f|
|
59
|
+
f.write response.body.force_encoding("UTF-8")
|
60
|
+
f
|
61
|
+
end
|
62
|
+
record.category = category
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def upload(file, prefix_options)
|
68
|
+
conn = Faraday.new(url: site.to_s, ssl: { verify: false }) do |builder|
|
69
|
+
builder.request :multipart # マルチパートでデータを送信
|
70
|
+
builder.request :url_encoded
|
71
|
+
builder.adapter :net_http
|
72
|
+
end
|
73
|
+
conn.headers["Authorization"] = access_token
|
74
|
+
params = {
|
75
|
+
uploadFile: Faraday::UploadIO.new(file.path, "text/plain"),
|
76
|
+
}
|
77
|
+
response = conn.put collection_path(prefix_options), params
|
78
|
+
check_response(response)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class Organization < Base
|
6
|
+
self.element_name = "organizations"
|
7
|
+
self.prefix = "/management/v2.6/"
|
8
|
+
|
9
|
+
# Parameter create
|
10
|
+
# {
|
11
|
+
# "organizationName": "your organization name",
|
12
|
+
# "address": "address",
|
13
|
+
# "tel": "tel"
|
14
|
+
# }
|
15
|
+
|
16
|
+
def to_json(options = {})
|
17
|
+
attributes.delete("organizationId")
|
18
|
+
attributes.delete("id")
|
19
|
+
super
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class OrganizationMember < Base
|
6
|
+
self.element_name = "members"
|
7
|
+
self.prefix = "/management/v2.6/organizations/:organization_id/"
|
8
|
+
|
9
|
+
def destroy
|
10
|
+
self.id = accountId
|
11
|
+
super
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class PredicateName < Base
|
6
|
+
self.element_name = "predicateNames"
|
7
|
+
self.prefix = "/management/v2.6/projects/:project_id/bots/:bot_id/"
|
8
|
+
|
9
|
+
def destroy(keys)
|
10
|
+
self.id = keys.join(",")
|
11
|
+
super()
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class Project < Base
|
6
|
+
self.element_name = "projects"
|
7
|
+
self.prefix = "/management/v2.6/"
|
8
|
+
|
9
|
+
# Parameter for create
|
10
|
+
# {
|
11
|
+
# "projectName": "your project name"
|
12
|
+
# "organizationId": "your organization id"
|
13
|
+
# }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class ProjectMember < Base
|
6
|
+
self.element_name = "members"
|
7
|
+
self.prefix = "/management/v2.6/projects/:project_id/"
|
8
|
+
|
9
|
+
def destroy
|
10
|
+
self.id = accountId
|
11
|
+
super
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class Provider < Base
|
6
|
+
self.element_name = "providers"
|
7
|
+
self.prefix = "/management/v2.6/"
|
8
|
+
|
9
|
+
# Parameter for create
|
10
|
+
# {
|
11
|
+
# "organizationId": "id",
|
12
|
+
# "serverKind":"SS",
|
13
|
+
# "serverId": "DSU"
|
14
|
+
# }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class Scenario < AIMLBase
|
6
|
+
self.element_name = "scenarios"
|
7
|
+
self.prefix = "/management/v2.6/projects/:project_id/bots/:bot_id/"
|
8
|
+
|
9
|
+
@permitted_root_param = [:userScenarios, :templateScenarios]
|
10
|
+
@permitted_userScenarios_param = [:scenarioId, :description, :compileFlag]
|
11
|
+
|
12
|
+
def save
|
13
|
+
@attributes.select! {|a| a =~ /(userScenarios|templateScenarios)/ }
|
14
|
+
userScenarios.each do |us|
|
15
|
+
us.attributes.select! {|a| a =~ /(scenarioId|description|compileFlag)/ }
|
16
|
+
end
|
17
|
+
super
|
18
|
+
end
|
19
|
+
|
20
|
+
def destroy(scenario_id)
|
21
|
+
self.id = scenario_id
|
22
|
+
super()
|
23
|
+
end
|
24
|
+
|
25
|
+
class UserScenarios < Base; end
|
26
|
+
class TemplateScenarios < Base; end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DocomoNlu
|
4
|
+
module Management::V26
|
5
|
+
class ScenarioUtil < Base
|
6
|
+
self.element_name = "scenarioUtils"
|
7
|
+
self.prefix = "/management/v2.6/"
|
8
|
+
|
9
|
+
def normalize
|
10
|
+
# TODO
|
11
|
+
end
|
12
|
+
|
13
|
+
def matches
|
14
|
+
# TODO
|
15
|
+
end
|
16
|
+
|
17
|
+
def save
|
18
|
+
print "Method not used"
|
19
|
+
end
|
20
|
+
|
21
|
+
def destroy
|
22
|
+
print "Method not used"
|
23
|
+
end
|
24
|
+
|
25
|
+
def delete
|
26
|
+
print "Method not used"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|