Skip to content

Commit f154ef9

Browse files
authored
Merge pull request #14 from phbernard/master
Typos in entity sample code
2 parents 1b0a7e9 + 920c0e0 commit f154ef9

File tree

3 files changed

+62
-14
lines changed

3 files changed

+62
-14
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ client.text_request 'call Mozart', entities: [
8484
]
8585
}
8686
]
87-
87+
8888
```
8989

9090
Or with separate **create_user_entities_request** object with full CRUD support:
@@ -102,11 +102,11 @@ entries_unknown = [
102102
ApiAiRuby::Entry.new('Jane Doe', %w(Jane))
103103
]
104104

105-
entity_contacts = ApiAiRuby::Entity.new('contacts', [entries_composers])
105+
entity_contacts = ApiAiRuby::Entity.new('contacts', entries_composers)
106106

107107
# let's go
108108
uer = client.create_user_entities_request
109-
uer.create(contacts) # or uer.create([entity1, entity2...])
109+
uer.create(entity_contacts) # or uer.create([entity1, entity2...])
110110

111111
client.text_request 'call Mozart' # will work
112112

@@ -117,7 +117,7 @@ client.text_request 'call John' # will work
117117

118118
uer.retrieve('contacts') # will return current state of user entity
119119
uer.delete('contacts') # will remove user entities for given session
120-
120+
121121
```
122122
## Context
123123
Also SDK has full support of [contexts](https://docs.api.ai/docs/contexts) API.AI endpoint with special object, called ```contexts_request```
@@ -131,7 +131,7 @@ parameters = {
131131
}
132132
name = 'test_context'
133133

134-
# you can create context using built-in model ApiAiRuby::Context
134+
# you can create context using built-in model ApiAiRuby::Context
135135
test_context = ApiAiRuby::Context.new(name, lifespan, parameters)
136136
another_test_context = ApiAiRuby::Context.new('another_test_context')
137137
one_more_test_context = ApiAiRuby::Context.new('one_more_test_context', 4)
@@ -194,6 +194,6 @@ Please see the [httprb wiki on timeouts](https://github.com/httprb/http/wiki/Tim
194194
* 1.2.2 - added configurable timeouts for requests (thanks [bramski](https://github.com/bramski))
195195
* 1.2.1 - fixed UTF-8 in text-requests
196196
* 1.2.0 - added configurable session_id and full userEntities support
197-
* 1.1.4 - removed unused dependency and updated default API version
197+
* 1.1.4 - removed unused dependency and updated default API version
198198
* 1.1.3 - fixed non-correctly serialized parameters in new contexts during query send process
199199
* 1.1.2 - fixed compatibility with ruby version less then 2.1.6

lib/api-ai-ruby/client.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,12 @@ def voice_request(file_stream, options = {})
8989

9090
# @return [ApiAiRuby::UserEntitiesRequest]
9191
def create_user_entities_request
92-
ApiAiRuby::UserEntitiesRequest.new(self);
92+
ApiAiRuby::UserEntitiesRequest.new(self)
93+
end
94+
95+
# @return [ApiAiRuby::UserEntitiesRequest]
96+
def create_entities_request
97+
ApiAiRuby::UserEntitiesRequest.new(self, {uri_path: 'entities'})
9398
end
9499

95100
# @return [ApiAiRuby::ContextsRequest]
@@ -98,4 +103,4 @@ def create_contexts_request
98103
end
99104

100105
end
101-
end
106+
end

lib/api-ai-ruby/crud/user_entity_request.rb

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ class UserEntitiesRequest < ApiAiRuby::RequestQuery
44
def initialize(client, options = {})
55
super client, options
66
@headers['Content-Type'] = 'application/json; charset=UTF-8'
7-
@crud_base_uri = client.api_base_url + 'userEntities'
8-
@uri = @crud_base_uri
7+
@crud_base_uri = client.api_base_url +
8+
(options[:uri_path] ? options[:uri_path] : 'userEntities')
99
end
1010

1111
# @param argument [Array<ApiAiRuby::Entity, Hash>, ApiAiRuby::Entity, Hash]
@@ -16,9 +16,23 @@ def create(argument)
1616
end
1717
@uri = @crud_base_uri
1818
@request_method = :post
19-
@options[:entities] = argument.is_a?(Array) ? argument : [argument]
20-
response = self.perform
21-
@options.delete(:entities)
19+
20+
old_options = nil
21+
22+
begin
23+
if argument.is_a?(ApiAiRuby::Entity)
24+
old_options = @options
25+
@options = argument
26+
else
27+
@options[:entities] = argument.is_a?(Array) ? argument : [argument]
28+
end
29+
30+
response = self.perform
31+
32+
@options.delete(:entities) if @options.respond_to? :delete
33+
rescue
34+
@options = old_options || @options
35+
end
2236
response
2337
end
2438

@@ -46,6 +60,35 @@ def update(name, entries, extend = false)
4660
response
4761
end
4862

63+
def update_entries(name, entries)
64+
65+
raise ApiAiRuby::ClientError.new('Entity name required') if !name
66+
67+
@options = entries
68+
69+
@request_method = :put
70+
@uri = @crud_base_uri + '/' + name + '/entries'
71+
response = self.perform
72+
@options.delete(:extend)
73+
@options.delete(:name)
74+
@options.delete(:entries)
75+
response
76+
end
77+
78+
def add_entries(name, entries)
79+
raise ApiAiRuby::ClientError.new('Entity name required') if !name
80+
81+
@options = entries
82+
83+
@request_method = :post
84+
@uri = @crud_base_uri + '/' + name + '/entries'
85+
response = self.perform
86+
@options.delete(:extend)
87+
@options.delete(:name)
88+
@options.delete(:entries)
89+
response
90+
end
91+
4992
def delete(name)
5093
raise ApiAiRuby::ClientError.new('Entity name required') if !name
5194
@request_method = :delete
@@ -54,4 +97,4 @@ def delete(name)
5497
end
5598

5699
end
57-
end
100+
end

0 commit comments

Comments
 (0)