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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -1
  3. data/docomo-nlu.gemspec +1 -0
  4. data/lib/docomo-nlu/management/{account.rb → V23/account.rb} +4 -6
  5. data/lib/docomo-nlu/management/{aiml_base.rb → V23/aiml_base.rb} +31 -5
  6. data/lib/docomo-nlu/management/{base.rb → V23/base.rb} +5 -4
  7. data/lib/docomo-nlu/management/{bot.rb → V23/bot.rb} +2 -2
  8. data/lib/docomo-nlu/management/{config.rb → V23/config.rb} +2 -2
  9. data/lib/docomo-nlu/management/{default_predicate.rb → V23/default_predicate.rb} +2 -2
  10. data/lib/docomo-nlu/management/{map.rb → V23/map.rb} +2 -2
  11. data/lib/docomo-nlu/management/{multipart_base.rb → V23/multipart_base.rb} +1 -1
  12. data/lib/docomo-nlu/management/{ng_word.rb → V23/ng_word.rb} +2 -2
  13. data/lib/docomo-nlu/management/{ok_word.rb → V23/ok_word.rb} +2 -2
  14. data/lib/docomo-nlu/management/{organization.rb → V23/organization.rb} +2 -2
  15. data/lib/docomo-nlu/management/{organization_member.rb → V23/organization_member.rb} +2 -2
  16. data/lib/docomo-nlu/management/{predicate_name.rb → V23/predicate_name.rb} +2 -2
  17. data/lib/docomo-nlu/management/{project.rb → V23/project.rb} +2 -2
  18. data/lib/docomo-nlu/management/{project_member.rb → V23/project_member.rb} +2 -2
  19. data/lib/docomo-nlu/management/{property.rb → V23/property.rb} +2 -2
  20. data/lib/docomo-nlu/management/{provider.rb → V23/provider.rb} +2 -2
  21. data/lib/docomo-nlu/management/{scenario.rb → V23/scenario.rb} +5 -5
  22. data/lib/docomo-nlu/management/{scenario_project.rb → V23/scenario_project.rb} +2 -2
  23. data/lib/docomo-nlu/management/{scenario_util.rb → V23/scenario_util.rb} +2 -2
  24. data/lib/docomo-nlu/management/{set.rb → V23/set.rb} +2 -2
  25. data/lib/docomo-nlu/management/{task_project.rb → V23/task_project.rb} +2 -2
  26. data/lib/docomo-nlu/management/V26/account.rb +31 -0
  27. data/lib/docomo-nlu/management/V26/aiml_base.rb +199 -0
  28. data/lib/docomo-nlu/management/V26/base.rb +88 -0
  29. data/lib/docomo-nlu/management/V26/bot.rb +18 -0
  30. data/lib/docomo-nlu/management/V26/config.rb +25 -0
  31. data/lib/docomo-nlu/management/V26/default_predicate.rb +15 -0
  32. data/lib/docomo-nlu/management/V26/map.rb +10 -0
  33. data/lib/docomo-nlu/management/V26/multipart_base.rb +83 -0
  34. data/lib/docomo-nlu/management/V26/ng_word.rb +10 -0
  35. data/lib/docomo-nlu/management/V26/ok_word.rb +10 -0
  36. data/lib/docomo-nlu/management/V26/organization.rb +23 -0
  37. data/lib/docomo-nlu/management/V26/organization_member.rb +15 -0
  38. data/lib/docomo-nlu/management/V26/predicate_name.rb +15 -0
  39. data/lib/docomo-nlu/management/V26/project.rb +16 -0
  40. data/lib/docomo-nlu/management/V26/project_member.rb +15 -0
  41. data/lib/docomo-nlu/management/V26/property.rb +10 -0
  42. data/lib/docomo-nlu/management/V26/provider.rb +17 -0
  43. data/lib/docomo-nlu/management/V26/scenario.rb +29 -0
  44. data/lib/docomo-nlu/management/V26/scenario_project.rb +10 -0
  45. data/lib/docomo-nlu/management/V26/scenario_util.rb +30 -0
  46. data/lib/docomo-nlu/management/V26/set.rb +10 -0
  47. data/lib/docomo-nlu/management/V26/task_project.rb +20 -0
  48. data/lib/docomo-nlu/management.rb +48 -22
  49. data/lib/docomo-nlu/version.rb +1 -1
  50. metadata +59 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfefc9978ca4f4524565449b0b6d0ce2d5b211c5e1ebe480551bd7f529a85d5b
4
- data.tar.gz: b1c827c8eef22a4d2f7e3e71fa7abc52f9f964b993582b04ec0cd0f8433e0168
3
+ metadata.gz: 8d5ed12b21cda6ecf562f293c3ca33ec2053200d910d4a26bf77f0ff29467fae
4
+ data.tar.gz: c81c539dbe8cf4e1ba20ddce48eb8ae80ac6006fb36be1e4edd05407ee334920
5
5
  SHA512:
6
- metadata.gz: 02b86bf251baacf2408efa3d22841a5e9f0daf79f78972f049360ea9e658cbfb1972181b5621cb360b5222569f2d0f547354461185bc7b9fb550f3c1afcc5066
7
- data.tar.gz: c6cdfe584432532f26f08cf0f61c4576e2bdd56f7182e620b60128b817023d7f6563e79e2d850716e6850fe867eaf57678d0f1024d7d0eebd282fb0b35fe9cb7
6
+ metadata.gz: da8d0a357eede445f3b172bf36ba69bddc5f98fafd138f027af20d12158994b3197f556262a2266ebb7415b365a881fbb8ddb8e845babdee91ff48c421482cd0
7
+ data.tar.gz: 8d85d2ae501e73379baf89cd783b7407f5063abfd016ee8766d09f343d4e20f48be045b788d4bf75570380a98d7411cb7752abedae19caabdb7d3982722beff9
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- docomo-nlu (0.1.3)
4
+ docomo-nlu (0.2.0)
5
5
  activeresource (~> 5.0.0)
6
6
  bundler
7
7
  faraday
@@ -215,6 +215,7 @@ DEPENDENCIES
215
215
  reek
216
216
  rspec
217
217
  rubocop (~> 0.58.2)
218
+ rubocop-rspec
218
219
  vcr (~> 4.0.0)
219
220
  webmock (~> 3.4.2)
220
221
 
data/docomo-nlu.gemspec CHANGED
@@ -33,6 +33,7 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency "reek"
34
34
  spec.add_development_dependency "rspec"
35
35
  spec.add_development_dependency "rubocop", "~> 0.58.2"
36
+ spec.add_development_dependency "rubocop-rspec"
36
37
  spec.add_development_dependency "vcr", "~> 4.0.0"
37
38
  spec.add_development_dependency "webmock", "~> 3.4.2"
38
39
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Account < Base
6
6
  self.element_name = "accounts"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/"
7
+ self.prefix = "/management/v2.2/"
8
8
 
9
9
  # Parameter for create
10
10
  # {
@@ -21,10 +21,8 @@ module DocomoNlu
21
21
  end
22
22
 
23
23
  def to_json(options = {})
24
- attributes.delete("accountId")
25
- attributes.delete("createDate")
26
- attributes.delete("loginDate")
27
- attributes.delete("id")
24
+ enable_params = ["accountName", "password", "description", "authorization", "enable"]
25
+ attributes.select! {|a| enable_params.include?(a) }
28
26
  super
29
27
  end
30
28
  end
@@ -13,9 +13,11 @@
13
13
  # Not supported
14
14
  # GET /{projectId}/bots/{botId}/archive/aiml
15
15
 
16
+ # require 'rubyzip'
17
+
16
18
  require "tempfile"
17
19
  module DocomoNlu
18
- module Management
20
+ module Management::V23
19
21
  class AIMLBase < Base
20
22
  ## For AIML
21
23
 
@@ -99,7 +101,7 @@ module DocomoNlu
99
101
 
100
102
  if check_response(response)
101
103
  instantiate_record({}, prefix_options).tap do |record|
102
- record.file = Tempfile.open(["docomo-nlu", ".#{prefix_options[:method].to_s.gsub(/archive/, "zip")}"]) do |f|
104
+ record.file = Tempfile.open(["docomo-nlu", ".#{prefix_options[:method]}"]) do |f|
103
105
  f.write response.body.force_encoding("UTF-8")
104
106
  f
105
107
  end
@@ -132,7 +134,7 @@ module DocomoNlu
132
134
  def deploy_request(method, prefix_options)
133
135
  response_body = JSON.parse(connection.post(Scenario.element_path(method, prefix_options), "", headers).body)
134
136
  # Sometimes, API returns wrong url, replace correct path.
135
- URI.parse(response_body["statusUri"]).path.gsub!(/NLPManagementAPI/, "management/#{DocomoNlu.config.nlu_version}")
137
+ URI.parse(response_body["statusUri"]).path.gsub!(/NLPManagementAPI/, "management/v2.2")
136
138
  end
137
139
 
138
140
  def deploy(prefix_options)
@@ -162,16 +164,40 @@ module DocomoNlu
162
164
  when :transfer then JSON.parse(connection.get(path, headers).body)["transferStatusResponses"][0]["status"]
163
165
  end
164
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
165
191
  end
166
192
 
167
193
  class FileModel < Base
168
194
  self.element_name = ""
169
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/:method"
195
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/:method"
170
196
  end
171
197
 
172
198
  class FAQModel < Base
173
199
  self.element_name = ""
174
- self.prefix = "/faqmanagement/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/:method"
200
+ self.prefix = "/faqmanagement/v2.2/projects/:project_id/bots/:bot_id/:method"
175
201
  end
176
202
  end
177
203
  end
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "net/http"
4
+
3
5
  module DocomoNlu
4
- module Management
6
+ module Management::V23
5
7
  class Base < ActiveResource::Base
6
8
  ## For Dynamically generated headers via http://rmosolgo.github.io/blog/2014/02/05/dynamically-generated-headers-for-activeresource-requests/
7
9
  cattr_accessor :static_headers
@@ -19,19 +21,18 @@ module DocomoNlu
19
21
  ## Remove format in path (remove .json)
20
22
  self.include_format_in_path = false
21
23
 
22
- ## Setting Format
23
24
  self.format = :json
24
25
 
25
26
  ## Get NLPManagement's AccessToken.
26
27
  def login(accountName, password)
27
28
  request_body = { accountName: accountName, password: password }.to_json
28
- response_body = JSON.parse(connection.post("/management/#{DocomoNlu.config.nlu_version}/login", request_body, self.class.headers).body)
29
+ response_body = JSON.parse(connection.post("/management/v2.2/login", request_body, self.class.headers).body)
29
30
  self.access_token = response_body["accessToken"]
30
31
  end
31
32
 
32
33
  ## Delete NLPManagement's AccessToken.
33
34
  def logout
34
- res = connection.get("/management/#{DocomoNlu.config.nlu_version}/logout", self.class.headers) if access_token.present?
35
+ res = connection.get("/management/v2.2/logout", self.class.headers) if access_token.present?
35
36
  raise ActiveResource::BadRequest, "Invalid access token" unless res
36
37
 
37
38
  self.access_token = nil
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Bot < AIMLBase
6
6
  self.element_name = "bots"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/"
8
8
 
9
9
  # Parameter for create
10
10
  # {
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Config < Base
6
6
  self.element_name = "configs"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
 
9
9
  # {
10
10
  # "dialogTimeout": 300,
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class DefaultPredicate < Base
6
6
  self.element_name = "defaultPredicates"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
 
9
9
  def destroy(keys)
10
10
  self.id = keys.join(",")
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Map < MultipartBase
6
6
  self.element_name = "maps"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
  end
9
9
  end
10
10
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "tempfile"
4
4
  module DocomoNlu
5
- module Management
5
+ module Management::V23
6
6
  class MultipartBase < Base
7
7
  def save
8
8
  self.class.create(attributes[:file], prefix_options)
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class NGWord < Base
6
6
  self.element_name = "ngWords"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
  end
9
9
  end
10
10
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class OKWord < Base
6
6
  self.element_name = "okWords"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
  end
9
9
  end
10
10
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Organization < Base
6
6
  self.element_name = "organizations"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/"
7
+ self.prefix = "/management/v2.2/"
8
8
 
9
9
  # Parameter create
10
10
  # {
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class OrganizationMember < Base
6
6
  self.element_name = "members"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/organizations/:organization_id/"
7
+ self.prefix = "/management/v2.2/organizations/:organization_id/"
8
8
 
9
9
  def destroy
10
10
  self.id = accountId
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class PredicateName < Base
6
6
  self.element_name = "predicateNames"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
 
9
9
  def destroy(keys)
10
10
  self.id = keys.join(",")
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Project < Base
6
6
  self.element_name = "projects"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/"
7
+ self.prefix = "/management/v2.2/"
8
8
 
9
9
  # Parameter for create
10
10
  # {
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class ProjectMember < Base
6
6
  self.element_name = "members"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/"
8
8
 
9
9
  def destroy
10
10
  self.id = accountId
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Property < Base
6
6
  self.element_name = "properties"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
  end
9
9
  end
10
10
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Provider < Base
6
6
  self.element_name = "providers"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/"
7
+ self.prefix = "/management/v2.2/"
8
8
 
9
9
  # Parameter for create
10
10
  # {
@@ -1,18 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Scenario < AIMLBase
6
6
  self.element_name = "scenarios"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
 
9
- @permitted_root_param = [:userScenarios,:templateScenarios]
9
+ @permitted_root_param = [:userScenarios, :templateScenarios]
10
10
  @permitted_userScenarios_param = [:scenarioId, :description, :compileFlag]
11
11
 
12
12
  def save
13
- @attributes.select!{|a| a =~ /(userScenarios|templateScenarios)/}
13
+ @attributes.select! {|a| a =~ /(userScenarios|templateScenarios)/ }
14
14
  userScenarios.each do |us|
15
- us.attributes.select!{|a| a =~ /(scenarioId|description|compileFlag)/}
15
+ us.attributes.select! {|a| a =~ /(scenarioId|description|compileFlag)/ }
16
16
  end
17
17
  super
18
18
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class ScenarioProject < Base
6
6
  self.element_name = "scenarioProjects"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/"
7
+ self.prefix = "/management/v2.2/"
8
8
  end
9
9
  end
10
10
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class ScenarioUtil < Base
6
6
  self.element_name = "scenarioUtils"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/"
7
+ self.prefix = "/management/v2.2/"
8
8
 
9
9
  def normalize
10
10
  # TODO
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class Set < MultipartBase
6
6
  self.element_name = "sets"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/projects/:project_id/bots/:bot_id/"
7
+ self.prefix = "/management/v2.2/projects/:project_id/bots/:bot_id/"
8
8
  end
9
9
  end
10
10
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DocomoNlu
4
- module Management
4
+ module Management::V23
5
5
  class TaskProject < Base
6
6
  self.element_name = "taskProjects"
7
- self.prefix = "/management/#{DocomoNlu.config.nlu_version}/"
7
+ self.prefix = "/management/v2.2/"
8
8
 
9
9
  # Parameter for create
10
10
  # {
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DocomoNlu
4
+ module Management::V26
5
+ class Account < Base
6
+ self.element_name = "accounts"
7
+ self.prefix = "/management/v2.6/"
8
+
9
+ # Parameter for create
10
+ # {
11
+ # "accountName": "your account name",
12
+ # "password": "your account password",
13
+ # "description": "account description",
14
+ # "authorization": 2,
15
+ # "enable": true
16
+ # "eternity": true
17
+ # }
18
+
19
+ def self.count
20
+ response_body = JSON.parse(connection.get("#{prefix}#{element_name}/count", headers).body)
21
+ response_body["count"]
22
+ end
23
+
24
+ def to_json(options = {})
25
+ enable_params = ["accountName", "password", "description", "authorization", "enable", "eternity"]
26
+ attributes.select! {|a| enable_params.include?(a) }
27
+ super
28
+ end
29
+ end
30
+ end
31
+ end