delighted 1.0.0 → 1.1.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.
|