delighted 1.0.0 → 1.1.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/USAGE.md +9 -2
- data/lib/delighted.rb +2 -1
- data/lib/delighted/client.rb +10 -0
- data/lib/delighted/http_adapter.rb +1 -0
- data/lib/delighted/resources/survey_request.rb +13 -0
- data/lib/delighted/resources/{survey_responses.rb → survey_response.rb} +0 -0
- data/lib/delighted/version.rb +1 -1
- data/test/delighted_test.rb +11 -0
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a734458d846278f7d93ca179a4e6adda072a68b
|
4
|
+
data.tar.gz: bbd3579c8ee5de44970a7d95e68fcd9f6e529ee4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03576120d48a582bfaf41a3bbbdfa188a619a5985fc03b9fcb86209d43ea5cc36badd39167b3f501a6fb042b76bc241215535be683cd81b895238862fab6eb65
|
7
|
+
data.tar.gz: 161a69baca6102cb630acd1bc45524a47cf35ac41b800ee6a608455d2e3e9cba5f2b3792a29d05edbec081486ca4ffb19d0b7046ef247fb85931fd836da9f4ea
|
data/CHANGELOG.md
ADDED
data/USAGE.md
CHANGED
@@ -30,7 +30,7 @@ person2 = Delighted::Person.create(:email => "foo+testing2@delightedapp.com", :d
|
|
30
30
|
person3 = Delighted::Person.create(:email => "foo+testing3@delightedapp.com", :send => false)
|
31
31
|
|
32
32
|
# Add a new person with full set of attributes, including a custom question product name,
|
33
|
-
# and schedule a survey 30
|
33
|
+
# and schedule a survey with a 30 second delay
|
34
34
|
person4 = Delighted::Person.create(:email => "foo+testing4@delightedapp.com", :name => "Joe Bloggs",
|
35
35
|
:properties => { :customer_id => 123, :country => "USA", :question_product_name => "Apple Genius Bar" },
|
36
36
|
:delay => 30)
|
@@ -40,6 +40,13 @@ updated_person1 = Delighted::Person.create(:email => "foo+testing1@delightedapp.
|
|
40
40
|
:name => "James Scott", :send => false)
|
41
41
|
```
|
42
42
|
|
43
|
+
### Deleting pending survey requests
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
# Delete all pending (scheduled but unsent) survey requests for a person, by email.
|
47
|
+
Delighted::SurveyRequest.delete_pending(:email => "foo+testing1@delightedapp.com")
|
48
|
+
```
|
49
|
+
|
43
50
|
### Adding survey responses
|
44
51
|
|
45
52
|
```ruby
|
@@ -93,7 +100,7 @@ client = Delighted::Client.new(:api_key => 'API_KEY',
|
|
93
100
|
metrics_from_custom_client = Delighted::Metrics.retrieve({}, client)
|
94
101
|
|
95
102
|
# Or, you can set Delighted.shared_client yourself
|
96
|
-
|
103
|
+
Delighted.shared_client = Delighted::Client.new(:api_key => 'API_KEY',
|
97
104
|
:api_base_url => 'https://api.delightedapp.com/v1', :http_adapter => Delighted::HTTPAdapter.new)
|
98
105
|
metrics_from_custom_shared_client = Delighted::Metrics.retrieve
|
99
106
|
```
|
data/lib/delighted.rb
CHANGED
@@ -17,7 +17,8 @@ require 'delighted/operations/retrieve'
|
|
17
17
|
|
18
18
|
require 'delighted/resources/metrics'
|
19
19
|
require 'delighted/resources/person'
|
20
|
-
require 'delighted/resources/
|
20
|
+
require 'delighted/resources/survey_request'
|
21
|
+
require 'delighted/resources/survey_response'
|
21
22
|
|
22
23
|
require 'delighted/errors'
|
23
24
|
require 'delighted/http_response'
|
data/lib/delighted/client.rb
CHANGED
@@ -29,6 +29,16 @@ module Delighted
|
|
29
29
|
handle_json_response(response)
|
30
30
|
end
|
31
31
|
|
32
|
+
def delete_json(path, params = {})
|
33
|
+
headers = default_headers.dup.merge('Accept' => 'application/json', 'Content-Type' => 'application/json')
|
34
|
+
|
35
|
+
uri = URI.parse(File.join(@api_base_url, path))
|
36
|
+
data = JSON.dump(params) unless params.empty?
|
37
|
+
|
38
|
+
response = @http_adapter.request(:delete, uri, headers, data)
|
39
|
+
handle_json_response(response)
|
40
|
+
end
|
41
|
+
|
32
42
|
private
|
33
43
|
|
34
44
|
def handle_json_response(response)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Delighted
|
2
|
+
class SurveyRequest < Resource
|
3
|
+
self.path = "/people/{PERSON_EMAIL}/survey_requests"
|
4
|
+
|
5
|
+
def self.delete_pending(attributes = {}, client = Delighted.shared_client)
|
6
|
+
raise ArgumentError, "You must pass :person_email" unless attributes[:person_email]
|
7
|
+
interpolated_path = path.sub("{PERSON_EMAIL}", CGI.escape(attributes[:person_email]))
|
8
|
+
interpolated_path << "/pending"
|
9
|
+
json = client.delete_json(interpolated_path)
|
10
|
+
json
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
File without changes
|
data/lib/delighted/version.rb
CHANGED
data/test/delighted_test.rb
CHANGED
@@ -36,6 +36,17 @@ class Delighted::PeopleTest < Delighted::TestCase
|
|
36
36
|
assert_equal 'foo@bar.com', person.email
|
37
37
|
assert_equal '123', person.id
|
38
38
|
end
|
39
|
+
|
40
|
+
def test_deleting_pending_survey_requests_for_a_person
|
41
|
+
uri = URI.parse("https://api.delightedapp.com/v1/people/foo%40bar.com/survey_requests/pending")
|
42
|
+
headers = { 'Authorization' => "Basic #{["123abc:"].pack('m0')}", "Accept" => "application/json", 'Content-Type' => 'application/json', 'User-Agent' => "Delighted RubyGem #{Delighted::VERSION}" }
|
43
|
+
response = Delighted::HTTPResponse.new(200, {}, Delighted::JSON.dump({ :ok => true }))
|
44
|
+
mock_http_adapter.expects(:request).with(:delete, uri, headers, nil).once.returns(response)
|
45
|
+
|
46
|
+
result = Delighted::SurveyRequest.delete_pending(:person_email => "foo@bar.com")
|
47
|
+
assert_kind_of Hash, result
|
48
|
+
assert_equal({ :ok => true }, result)
|
49
|
+
end
|
39
50
|
end
|
40
51
|
|
41
52
|
class Delighted::SurveyResponseTest < Delighted::TestCase
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delighted
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.1.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Dodwell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -75,6 +75,7 @@ extra_rdoc_files: []
|
|
75
75
|
files:
|
76
76
|
- .gitignore
|
77
77
|
- .travis.yml
|
78
|
+
- CHANGELOG.md
|
78
79
|
- Gemfile
|
79
80
|
- LICENSE
|
80
81
|
- README.md
|
@@ -94,7 +95,8 @@ files:
|
|
94
95
|
- lib/delighted/resource.rb
|
95
96
|
- lib/delighted/resources/metrics.rb
|
96
97
|
- lib/delighted/resources/person.rb
|
97
|
-
- lib/delighted/resources/
|
98
|
+
- lib/delighted/resources/survey_request.rb
|
99
|
+
- lib/delighted/resources/survey_response.rb
|
98
100
|
- lib/delighted/utils.rb
|
99
101
|
- lib/delighted/version.rb
|
100
102
|
- test/delighted_test.rb
|
@@ -114,12 +116,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
116
|
version: '0'
|
115
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
118
|
requirements:
|
117
|
-
- - '
|
119
|
+
- - '>'
|
118
120
|
- !ruby/object:Gem::Version
|
119
|
-
version:
|
121
|
+
version: 1.3.1
|
120
122
|
requirements: []
|
121
123
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
124
|
+
rubygems_version: 2.2.2
|
123
125
|
signing_key:
|
124
126
|
specification_version: 4
|
125
127
|
summary: Delighted is the easiest and most beautiful way to measure customer happiness.
|