api-ai-ruby 1.2.2 → 1.2.3

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
  SHA1:
3
- metadata.gz: 522e5912efc69543bb84c18c85e7be17a3858640
4
- data.tar.gz: bae85fbe0f16379fef9ceeb70a0b2035a85f26d8
3
+ metadata.gz: 730482838f5570e11f15f9dc035bd1660dcc9ee6
4
+ data.tar.gz: 50f4c68548a98f9055f01e8196f5bb1cea2931ef
5
5
  SHA512:
6
- metadata.gz: 33292054e5c042f63fa248b53bedd68d2d009e1eeb16d79aae63cf798829f9aeb500b031189a530887c2be37c7827867269270630866a56f7eba1f4cff823628
7
- data.tar.gz: 1358d1cf73154909c6be7e903828e349fd9bad9342b010344ce92f0d2c825672dd6c867bb4edb86c1a9e23ceff665cc3f043f5dedd4b74ba74020f90a2ae2777
6
+ metadata.gz: ec864af3471a6f93aa1bb898e7fc29ed341b4dfb4828da406beb2570538bcd3f21b71755fdd3eb66822bda1a1e5baac3ae6e6ba866a24957eeee16903504f238
7
+ data.tar.gz: 9d1548277b2bb7a98b5f11bb789f91d80d050bfa3d9b7dad7fd29da6a63c87d2a48d3833648c594358124b623185cee0e87d5a0e68d2546c7cc2bc1d2dc9a53c
data/README.md CHANGED
@@ -22,35 +22,14 @@ After that you can send text requests to the https://api.ai with command
22
22
  response = client.text_request 'hello!'
23
23
  ```
24
24
 
25
- And voice requests with file stream
25
+ Or try to invocate intent via defined '[event](https://docs.api.ai/docs/concept-events)':
26
26
 
27
27
  ```ruby
28
- file = File.new 'hello.wav'
29
- response = client.voice_request(file)
30
- ```
31
28
 
32
- Example answer:
33
- ```
34
- {
35
- :id => "6daf5ab7-276c-43ad-a32d-bf6831918492",
36
- :timestamp => "2015-12-22T08:42:15.785Z",
37
- :result => {
38
- :source => "agent",
39
- :resolvedQuery => "Hello",
40
- :speech => "Hi! How are you?",
41
- :action => "greeting",
42
- :parameters => {},
43
- :contexts => [],
44
- :metadata => {
45
- :intentId => "a5d685ab-1f19-46b0-9478-69f794553668",
46
- :intentName => "hello"
47
- }
48
- },
49
- :status => {
50
- :code => 200,
51
- :errorType => "success"
52
- }
53
- }
29
+ response_zero = client.event_request 'MY_CUSTOM_EVENT_NAME';
30
+ response_one = client.event_request 'MY_EVENT_WITH_DATA_TO_STORE', {:param1 => 'value'}
31
+ response_two = client.event_request 'MY_EVENT_WITH_DATA_TO_STORE', {:some_param => 'some_value'}, :resetContexts => true
32
+
54
33
  ```
55
34
 
56
35
  **voice_request** and **text_request** methods returns symbolized https://api.ai response. Structure of response can be found at https://docs.api.ai/docs/query#response.
@@ -73,7 +52,7 @@ And you also can send additional data to server during request, use second param
73
52
 
74
53
  ```ruby
75
54
  response = client.text_request 'Hello', :contexts => ['firstContext'], :resetContexts => true
76
- response = client.voice_request file, :timezone => "America/New_York"
55
+ response = client.voice_request file, :timezone => 'America/New_York'
77
56
  ```
78
57
 
79
58
  More information about possible parameters can be found at https://docs.api.ai/docs/query page
@@ -162,6 +141,7 @@ Please see the [httprb wiki on timeouts](https://github.com/httprb/http/wiki/Tim
162
141
 
163
142
  #Changelog
164
143
 
144
+ * 1.2.3 - events support
165
145
  * 1.2.2 - added configurable timeouts for requests (thanks [bramski](https://github.com/bramski))
166
146
  * 1.2.1 - fixed UTF-8 in text-requests
167
147
  * 1.2.0 - added configurable session_id and full userEntities support
@@ -4,8 +4,8 @@ require 'api-ai-ruby/request_error'
4
4
  require 'api-ai-ruby/client_error'
5
5
  require 'api-ai-ruby/request/request_query'
6
6
  require 'api-ai-ruby/request/text_request'
7
+ require 'api-ai-ruby/request/event_request'
7
8
  require 'api-ai-ruby/request/voice_request'
8
9
  require 'api-ai-ruby/models/entry'
9
10
  require 'api-ai-ruby/models/entity'
10
11
  require 'api-ai-ruby/crud/user_entity_request'
11
-
@@ -2,11 +2,10 @@ require 'securerandom'
2
2
 
3
3
  module ApiAiRuby
4
4
  class Client
5
- attr_accessor :client_access_token, :subscription_key, :timeout_options
5
+ attr_accessor :client_access_token, :timeout_options
6
6
  attr_writer :user_agent, :api_version, :api_lang, :api_base_url, :api_session_id
7
7
 
8
8
  # Initializes a new Client object
9
- #
10
9
  # @param options [Hash]
11
10
  # @return [ApiAiRuby::Client]
12
11
  def initialize(options = {})
@@ -60,25 +59,26 @@ module ApiAiRuby
60
59
  ApiAiRuby::TextRequest.new(self, options).perform
61
60
  end
62
61
 
62
+ # @param eventName [String]
63
+ # @param data [Object]
64
+ # @param options [Object]
65
+ def event_request (eventName = '', data = {}, options = {})
66
+ raise ApiAiRuby::ClientError.new('Credentials missing') if !credentials?
67
+ options[:event] = {
68
+ name: eventName,
69
+ data: data
70
+ }
71
+ ApiAiRuby::EventRequest.new(self, options).perform
72
+ end
73
+
63
74
  def voice_request(file_stream, options = {})
64
75
  raise ApiAiRuby::ClientError.new('Credentials missing') if !credentials?
65
76
  options[:file] = file_stream
66
77
  ApiAiRuby::VoiceRequest.new(self, options).perform
67
78
  end
68
79
 
69
- # @param entity_name [String]
70
- # @param entries [ApiAiRuby:Entry[]]
71
- # @param options [Hash]
72
-
73
- def user_entities_request #entity_name, entries, options = {}
80
+ def user_entities_request
74
81
  ApiAiRuby::UserEntitiesRequest.new(self);
75
- # raise ApiAiRuby::ClientError.new('Entity name required') if entity_name.nil?
76
- # raise ApiAiRuby::ClientError.new('Entity entries array required') if !entries.nil? && entries.is_a?(Array)
77
- # raise ApiAiRuby::ClientError.new('Entity name required') if !(options.has_key?(:entries) && options[:entries].is_a?(Array))
78
- # options[:name] = entity_name
79
- # options[:entries] = entries
80
- # options[:extend] = options[:extend] || false
81
- # ApiAiRuby::UserEntitiesRequest.new(self, options).perform
82
82
  end
83
83
 
84
84
  end
@@ -1,6 +1,6 @@
1
1
  module ApiAiRuby
2
2
  class Constants
3
- VERSION = '1.2.2'
3
+ VERSION = '1.2.3'
4
4
  DEFAULT_BASE_URL = 'https://api.api.ai/v1/'
5
5
  DEFAULT_API_VERSION = '20150910'
6
6
  DEFAULT_CLIENT_LANG = 'en'
@@ -0,0 +1,13 @@
1
+ module ApiAiRuby
2
+ class EventRequest < ApiAiRuby::RequestQuery
3
+
4
+ # @param client [ApiAiRuby::Client]
5
+ # @param options [Hash]
6
+ # @return [ApiAiRuby::EventRequest]
7
+ def initialize (client, options={})
8
+ options[:lang] = client.api_lang
9
+ super client, options
10
+ @headers['Content-Type'] = 'application/json; charset=UTF-8'
11
+ end
12
+ end
13
+ end
@@ -7,7 +7,7 @@ module ApiAiRuby
7
7
 
8
8
  # @param client [ApiAiRuby::Client]
9
9
  # @param options [Hash]
10
- # @return [ApiAiRuby::TextRequest]
10
+ # @return [ApiAiRuby::RequestQuery]
11
11
 
12
12
  def initialize(client, options = {})
13
13
  @client = client
@@ -104,5 +104,15 @@ describe 'api' do
104
104
  @uer.delete('dwarfs')
105
105
  expect{@uer.retrieve('dwarfs')}.to raise_error(ApiAiRuby::RequestError)
106
106
  end
107
+
108
+ #
109
+ # commented until test agent update
110
+ #
111
+ # it 'should invoke event' do
112
+ # response = @client.event_request 'WELCOME'
113
+ # expect(response[:result][:action]).to eq 'input.welcome'
114
+ # puts(response)
115
+ # end
116
+
107
117
  end
108
118
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api-ai-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - api.ai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-14 00:00:00.000000000 Z
11
+ date: 2016-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.7'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: http
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.9.4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.9.4
55
55
  description: Plugin makes it easy to integrate your Ruby application with https://api.ai
@@ -60,7 +60,7 @@ executables: []
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
- - .gitignore
63
+ - ".gitignore"
64
64
  - Gemfile
65
65
  - LICENSE
66
66
  - README.md
@@ -73,6 +73,7 @@ files:
73
73
  - lib/api-ai-ruby/crud/user_entity_request.rb
74
74
  - lib/api-ai-ruby/models/entity.rb
75
75
  - lib/api-ai-ruby/models/entry.rb
76
+ - lib/api-ai-ruby/request/event_request.rb
76
77
  - lib/api-ai-ruby/request/request_query.rb
77
78
  - lib/api-ai-ruby/request/text_request.rb
78
79
  - lib/api-ai-ruby/request/voice_request.rb
@@ -95,17 +96,17 @@ require_paths:
95
96
  - lib
96
97
  required_ruby_version: !ruby/object:Gem::Requirement
97
98
  requirements:
98
- - - ~>
99
+ - - "~>"
99
100
  - !ruby/object:Gem::Version
100
101
  version: '2.0'
101
102
  required_rubygems_version: !ruby/object:Gem::Requirement
102
103
  requirements:
103
- - - '>='
104
+ - - ">="
104
105
  - !ruby/object:Gem::Version
105
106
  version: '0'
106
107
  requirements: []
107
108
  rubyforge_project:
108
- rubygems_version: 2.0.14.1
109
+ rubygems_version: 2.5.1
109
110
  signing_key:
110
111
  specification_version: 4
111
112
  summary: ruby SDK for https://api.ai
@@ -118,4 +119,3 @@ test_files:
118
119
  - spec/api-ai-ruby/voice_request_spec.rb
119
120
  - spec/fixtures/hello.wav
120
121
  - spec/helper.rb
121
- has_rdoc: