live_paper 0.0.9 → 0.0.10

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: e0be6ece34f4d51cf32f7ea78ffaae9d6c8543b3
4
- data.tar.gz: b3838914f2bbaca46a1af9d87d259612186849f0
3
+ metadata.gz: 54159788ca4d35d52a44ed05de7e2fdfad88998e
4
+ data.tar.gz: 4f319ab3b4ad6f7380828d0bc68b06ca1979433a
5
5
  SHA512:
6
- metadata.gz: 4956d0c6516a9f2778e2e84c2958a4ebc50b981fa9fce39dd2260b8ef00b07016834d13b43f14858c2f72a3ba516501c6058baca22fa50f8564d2b3310291346
7
- data.tar.gz: bde0081f9039ec48fb5354cee3fdf5c062967a7f2cd3ca85bd5fab44ea7cda3067e3b68f99305895c4256c1e36e413159983159b7692713f6ec8dbf805545aa8
6
+ metadata.gz: a8a4256e05ff2fbf38165b9ed6098673d3602b3a387de482cc4a7f911a82961f148bf118867d7bff796f12a0ed88a3e938a30741a0edd1dcac3a4e5436ae3a33
7
+ data.tar.gz: c9416a9a5d40f8eabb7d3897b775c390a56346cb2b629e92616a364d2af098d4a124778fef1b6dde36c0868741d059885e6e80bce8597c0a696c0a8630c296a4
@@ -4,7 +4,7 @@ require 'json'
4
4
  module LivePaper
5
5
  class BaseObject
6
6
  extend HttpClient
7
- attr_accessor :id, :name, :date_created, :date_modified
7
+ attr_accessor :id, :name, :date_created, :date_modified, :link
8
8
 
9
9
  def assign_attributes(data)
10
10
  data.each do |key, value|
@@ -30,7 +30,7 @@ module LivePaper
30
30
  self
31
31
  end
32
32
 
33
- def self.find(id)
33
+ def self.get(id)
34
34
  request_handling_auth("#{api_url}/#{id}", 'GET') do |request|
35
35
  response = send_request(request, 'application/json')
36
36
  parse response.body
@@ -49,6 +49,10 @@ module LivePaper
49
49
  raise NotImplementedError
50
50
  end
51
51
 
52
+ def rel(key)
53
+ link.find { |obj| obj[:rel] == key }[:href] rescue nil
54
+ end
55
+
52
56
  protected
53
57
  def all_present?(array)
54
58
  array.all? { |e| present? e } rescue false
@@ -3,7 +3,6 @@ require 'rest-client'
3
3
 
4
4
  module LivePaper
5
5
  class Image
6
- extend HttpClient
7
6
 
8
7
  attr_accessor :url
9
8
 
@@ -2,22 +2,21 @@ require_relative 'base_object'
2
2
 
3
3
  module LivePaper
4
4
  class Link < BaseObject
5
- attr_accessor :payoff_id, :trigger_id, :analytics
5
+ attr_accessor :payoff_id, :trigger_id
6
6
 
7
- def parse(data)
8
- data = JSON.parse(data, symbolize_names: true)[:link]
7
+ def parse(jsondata)
8
+ data = JSON.parse(jsondata, symbolize_names: true)[:link]
9
9
  assign_attributes data
10
- @analytics = get_link_for data, 'analytics'
11
10
  self
12
11
  end
13
12
 
14
13
  def payoff
15
- @payoff ||= LivePaper::Payoff.find @payoff_id
14
+ @payoff ||= LivePaper::Payoff.get @payoff_id
16
15
  end
17
16
 
18
17
  def trigger
19
18
  #todo: need to get the right object created here!!!
20
- @trigger ||= LivePaper::WmTrigger.find @trigger_id
19
+ @trigger ||= LivePaper::WmTrigger.get @trigger_id
21
20
  end
22
21
 
23
22
  def self.api_url
@@ -38,9 +37,5 @@ module LivePaper
38
37
  }
39
38
  }
40
39
  end
41
-
42
- def get_link_for(data, rel)
43
- data[:link].find { |obj| obj[:rel] == rel }[:href] rescue ''
44
- end
45
40
  end
46
41
  end
@@ -1,3 +1,3 @@
1
1
  module LivePaper
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -101,7 +101,7 @@ describe LivePaper::BaseObject do
101
101
  end
102
102
  end
103
103
 
104
- describe '.find' do
104
+ describe '.get' do
105
105
  before do
106
106
  allow(LivePaper::BaseObject).to receive(:api_url).and_return(@api_url)
107
107
  @data = '"id": "id", "name": "name"'
@@ -112,21 +112,50 @@ describe LivePaper::BaseObject do
112
112
  it 'should return the requested base object.' do
113
113
  allow(@data).to receive(:body).and_return(@data)
114
114
  expect(LivePaper::BaseObject).to receive(:parse).with(@data)
115
- LivePaper::BaseObject.find('base_object')
115
+ LivePaper::BaseObject.get('base_object')
116
116
  end
117
117
  end
118
118
 
119
119
  context 'the requested base object does not exist or some error happened.' do
120
120
  it 'should not raise error.' do
121
- expect { LivePaper::BaseObject.find('base_object_not_existent') }.to_not raise_error
121
+ expect { LivePaper::BaseObject.get('base_object_not_existent') }.to_not raise_error
122
122
  end
123
123
 
124
124
  it 'should return nil.' do
125
- expect(LivePaper::BaseObject.find('base_object_not_existent')).to eq nil
125
+ expect(LivePaper::BaseObject.get('base_object_not_existent')).to eq nil
126
126
  end
127
127
  end
128
128
  end
129
129
 
130
+ describe '#rel' do
131
+ before do
132
+ stub_unimplemented_methods
133
+ @data = {
134
+ name: 'name',
135
+ date_created: 'date_created',
136
+ date_modified: 'date_modified',
137
+ link: [
138
+ { :rel => "self", :href => "/api/v1/payoffs/payoff_id" },
139
+ { :rel => "analytics", :href => "/analytics/v1/payoffs/payoff_id" }
140
+ ]
141
+ }
142
+ @obj = LivePaper::BaseObject.create @data
143
+ end
144
+
145
+ it 'should return href for rel link' do
146
+ expect(@obj.rel('self')).to eq '/api/v1/payoffs/payoff_id'
147
+ end
148
+
149
+ it 'should return nil for unknown rel link' do
150
+ expect(@obj.rel('invalid')).to be_nil
151
+ end
152
+
153
+ it 'should NOT crash when the link attribute is nil' do
154
+ @obj.link=nil
155
+ expect(@obj.rel('self')).to be_nil
156
+ end
157
+ end
158
+
130
159
  describe '#all_present?' do
131
160
  before do
132
161
  @all = [1, 2, {k: 'v'}, [1, 2]]
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe LivePaper::WmTrigger do
3
+ describe LivePaper::Link do
4
4
  before do
5
5
  stub_request(:post, /.*livepaperapi.com\/auth\/token.*/).to_return(:body => lpp_auth_response_json, :status => 200)
6
6
  stub_request(:post, LivePaper::Link.api_url).to_return(:body => lpp_link_response_json, :status => 200)
@@ -10,7 +10,6 @@ describe LivePaper::WmTrigger do
10
10
  @data = {
11
11
  id: 'id',
12
12
  name: 'name',
13
- analytics: 'analytics',
14
13
  trigger_id: 'trigger_id',
15
14
  payoff_id: 'payoff_id'
16
15
  }
@@ -21,10 +20,6 @@ describe LivePaper::WmTrigger do
21
20
  @link = LivePaper::Link.new @data
22
21
  end
23
22
 
24
- it 'should map the analytics attribute.' do
25
- expect(@link.analytics).to eq @data[:analytics]
26
- end
27
-
28
23
  it 'should map the trigger_id attribute.' do
29
24
  expect(@link.trigger_id).to eq @data[:trigger_id]
30
25
  end
@@ -85,8 +80,13 @@ describe LivePaper::WmTrigger do
85
80
  expect(@link.name).to eq 'name'
86
81
  end
87
82
 
88
- it 'should map the analytics attribute.' do
89
- expect(@link.analytics).to eq 'analytics'
83
+ it 'should map the link array attribute.' do
84
+ expect(@link.link).to be_a Array
85
+ expect(@link.link.size).to eq 4
86
+ expect(@link.link).to eq [{:rel=>"self", :href=>"self_url"},
87
+ {:rel=>"analytics", :href=>"analytic_url"},
88
+ {:rel=>"payoff", :href=>"payoff_url"},
89
+ {:rel=>"trigger", :href=>"trigger_url"}]
90
90
  end
91
91
 
92
92
  it 'should map the trigger_id attribute.' do
@@ -98,16 +98,17 @@ describe LivePaper::WmTrigger do
98
98
  end
99
99
  end
100
100
 
101
- describe '.find' do
101
+ describe '.get' do
102
102
  context 'the requested Link exists.' do
103
103
  before do
104
- @link = LivePaper::Link.find('link_id')
104
+ @link = LivePaper::Link.get('link_id')
105
105
  end
106
106
 
107
107
  it 'should return the requested link.' do
108
108
  expect(@link.id).to eq 'link_id'
109
109
  expect(@link.name).to eq 'name'
110
- expect(@link.analytics).to eq 'analytics'
110
+ expect(@link.link).to be_a Array
111
+ expect(@link.link.size).to eq 4
111
112
  expect(@link.trigger_id).to eq 'trigger_id'
112
113
  expect(@link.payoff_id).to eq 'payoff_id'
113
114
  end
@@ -115,11 +116,11 @@ describe LivePaper::WmTrigger do
115
116
 
116
117
  context 'the requested link does not exist or some error happened.' do
117
118
  it 'should not raise error.' do
118
- expect { LivePaper::Link.find('link_not_existent') }.to_not raise_error
119
+ expect { LivePaper::Link.get('link_not_existent') }.to_not raise_error
119
120
  end
120
121
 
121
122
  it 'should return nil.' do
122
- expect(LivePaper::Link.find('link_not_existent')).to eq nil
123
+ expect(LivePaper::Link.get('link_not_existent')).to eq nil
123
124
  end
124
125
  end
125
126
  end
@@ -179,5 +180,4 @@ describe LivePaper::WmTrigger do
179
180
  end
180
181
  end
181
182
  end
182
-
183
183
  end
@@ -192,10 +192,10 @@ describe LivePaper::Payoff do
192
192
  end
193
193
  end
194
194
 
195
- describe '.find' do
195
+ describe '.get' do
196
196
  context 'the requested payoff exists.' do
197
197
  before do
198
- @payoff = LivePaper::Payoff.find('payoff_id')
198
+ @payoff = LivePaper::Payoff.get('payoff_id')
199
199
  end
200
200
 
201
201
  it 'should return the requested payoff.' do
@@ -208,11 +208,11 @@ describe LivePaper::Payoff do
208
208
 
209
209
  context 'the requested payoff does not exist or some error happened.' do
210
210
  it 'should not raise error.' do
211
- expect { LivePaper::Payoff.find('payoff_not_existent') }.to_not raise_error
211
+ expect { LivePaper::Payoff.get('payoff_not_existent') }.to_not raise_error
212
212
  end
213
213
 
214
214
  it 'should return nil.' do
215
- expect(LivePaper::Payoff.find('payoff_not_existent')).to eq nil
215
+ expect(LivePaper::Payoff.get('payoff_not_existent')).to eq nil
216
216
  end
217
217
  end
218
218
  end
@@ -96,10 +96,10 @@ describe LivePaper::WmTrigger do
96
96
  end
97
97
  end
98
98
 
99
- describe '.find' do
99
+ describe '.get' do
100
100
  context 'the requested trigger exists.' do
101
101
  before do
102
- @trigger = LivePaper::WmTrigger.find('trigger_id')
102
+ @trigger = LivePaper::WmTrigger.get('trigger_id')
103
103
  end
104
104
 
105
105
  it 'should return the requested trigger.' do
@@ -112,11 +112,11 @@ describe LivePaper::WmTrigger do
112
112
 
113
113
  context 'the requested trigger does not exist or some error happened.' do
114
114
  it 'should not raise error.' do
115
- expect { LivePaper::WmTrigger.find('trigger_not_existent') }.to_not raise_error
115
+ expect { LivePaper::WmTrigger.get('trigger_not_existent') }.to_not raise_error
116
116
  end
117
117
 
118
118
  it 'should return nil.' do
119
- expect(LivePaper::WmTrigger.find('trigger_not_existent')).to eq nil
119
+ expect(LivePaper::WmTrigger.get('trigger_not_existent')).to eq nil
120
120
  end
121
121
  end
122
122
  end
@@ -27,14 +27,26 @@ def lpp_richpayoff_response_json
27
27
  "payoff": {
28
28
  "id": "payoff_id",
29
29
  "name": "name",
30
+ "dateCreated":"2014-10-07T20:57:01.083+0000",
31
+ "dateModified":"2014-10-07T20:57:01.083+0000",
32
+ "link":[
33
+ {
34
+ "rel":"self",
35
+ "href":"/api/v1/payoffs/payoff_id"
36
+ },
37
+ {
38
+ "rel":"analytics",
39
+ "href":"/analytics/v1/payoffs/payoff_id"
40
+ }
41
+ ],
30
42
  "richPayoff" : {
31
43
  "version": 1,
44
+ "public": {
45
+ "url": "url"
46
+ },
32
47
  "private": {
33
48
  "content-type": "data_type",
34
49
  "data": "#{Base64.encode64('{ "field": 1 }').gsub(/\n/,'')}"
35
- },
36
- "public": {
37
- "url": "url"
38
50
  }
39
51
  }
40
52
  }
@@ -62,9 +74,26 @@ def lpp_link_response_json
62
74
  "link": {
63
75
  "id": "link_id",
64
76
  "name": "name",
65
- "triggerId": "trigger_id",
77
+ "dateCreated": "2014-04-08T08:16:25.723+0000",
78
+ "dateModified": "2014-04-08T08:16:25.723+0000",
79
+ "link": [{
80
+ "rel": "self",
81
+ "href": "self_url"
82
+ },
83
+ {
84
+ "rel": "analytics",
85
+ "href": "analytic_url"
86
+ },
87
+ {
88
+ "rel": "payoff",
89
+ "href": "payoff_url"
90
+ },
91
+ {
92
+ "rel": "trigger",
93
+ "href": "trigger_url"
94
+ }],
66
95
  "payoffId": "payoff_id",
67
- "link": [{"rel":"analytics", "href": "analytics"}]
96
+ "triggerId": "trigger_id"
68
97
  }
69
98
  }
70
99
  RESPONSE
@@ -72,4 +101,20 @@ end
72
101
 
73
102
  def lpp_watermark_response
74
103
  'watermark_data'
104
+ end
105
+
106
+ def lpp_delete_error_response
107
+ <<-RESPONSE
108
+ { "associatedLinks": "1",
109
+ "link": [{
110
+ "rel": "associatedLinks",
111
+ "href": "https://dev.livepaperapi.com/api/v1/links?trigger=uMTGQ0xoS7exSL3iujHJSA"
112
+ }],
113
+ "error": {
114
+ "title": "409 Conflict",
115
+ "message": "The trigger to be deleted has associated links. The associated links must be deleted first."
116
+ }
117
+ }
118
+ RESPONSE
119
+
75
120
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: live_paper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Whitmarsh
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-29 00:00:00.000000000 Z
12
+ date: 2014-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client