spark_api 1.4.6 → 1.4.8
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 +8 -8
- data/VERSION +1 -1
- data/lib/spark_api/models/listing_cart.rb +7 -3
- data/lib/spark_api/response.rb +9 -9
- data/spec/fixtures/listing_carts/add_listings.json +13 -0
- data/spec/fixtures/listing_carts/add_listings_post.json +5 -0
- data/spec/unit/spark_api/models/listing_cart_spec.rb +11 -0
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTNkMGYyYTRmYTcwMDNhYzA5MmNiN2IwMGQyNDFlZjJjZGIxN2IwZg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YzE0ZGIwNzJmNjg5NDAxN2IzNTI3ZTdmN2JlMWM2MmE1YTQzZTE0MA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzA4MGYyNWQ5YjQyYjU1ZTZjMTIzMmUxNjQzZDJjYmUxY2ViZDhkMGRiMGYx
|
10
|
+
N2ZmMTZkZGY3Y2M4ZjkxYTA5YmY1Zjg1OWRiODNjMTBlYTM2ZTVkYmU2ZTU1
|
11
|
+
NTkxZjQ5Y2M2ZTYyN2IyZmFhNzM5ZWJhNzBhMzVjNTZkMDI2ZjQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGI3ZTE1NTcxMmU2YjI3ZDMxZTVkZmIxZWFlOWZhMzljNjI5YjRhNjQ0M2Mz
|
14
|
+
YmJmZDQ4OTUxZTliMjRiZjY5ODBkNjVmMTFjZjdlYzEyY2RhZWExNTI4N2Nk
|
15
|
+
NjU1ZTVmZTIwNWMxN2VlOTkwNTg5N2JiZDZmZDJmYWQ5NzA1Yzc=
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.4.
|
1
|
+
1.4.8
|
@@ -37,12 +37,16 @@ module SparkApi
|
|
37
37
|
Listing.collect(connection.get("#{self.path}/#{self.Id}/listings", args))
|
38
38
|
end
|
39
39
|
|
40
|
-
def
|
41
|
-
ids =
|
42
|
-
|
40
|
+
def add_listings(listings)
|
41
|
+
ids = Array(listings).map do |listing|
|
42
|
+
listing.respond_to?(:Id) ? listing.Id : listing
|
43
|
+
end
|
44
|
+
results = connection.post("#{self.resource_uri}", {"ListingIds" => ids})
|
43
45
|
self.ListingCount = results.first["ListingCount"]
|
44
46
|
end
|
45
47
|
|
48
|
+
alias_method :add_listing, :add_listings
|
49
|
+
|
46
50
|
def remove_listing(listing)
|
47
51
|
id = listing.respond_to?(:Id) ? listing.Id : listing.to_s
|
48
52
|
results = connection.delete("#{self.class.path}/#{self.Id}/listings/#{id}")
|
data/lib/spark_api/response.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module SparkApi
|
2
2
|
# API Response interface
|
3
3
|
module Response
|
4
|
-
ATTRIBUTES = [:code, :message, :results, :success, :pagination, :details]
|
4
|
+
ATTRIBUTES = [:code, :message, :results, :success, :pagination, :details, :d]
|
5
5
|
attr_accessor *ATTRIBUTES
|
6
6
|
def success?
|
7
7
|
@success
|
@@ -13,16 +13,16 @@ module SparkApi
|
|
13
13
|
include SparkApi::Response
|
14
14
|
def initialize(d)
|
15
15
|
begin
|
16
|
-
|
17
|
-
if
|
16
|
+
self.d = d["D"]
|
17
|
+
if self.d.nil? || self.d.empty?
|
18
18
|
raise InvalidResponse, "The server response could not be understood"
|
19
19
|
end
|
20
|
-
self.message =
|
21
|
-
self.code =
|
22
|
-
self.results = Array(
|
23
|
-
self.success =
|
24
|
-
self.pagination =
|
25
|
-
self.details =
|
20
|
+
self.message = self.d["Message"]
|
21
|
+
self.code = self.d["Code"]
|
22
|
+
self.results = Array(self.d["Results"])
|
23
|
+
self.success = self.d["Success"]
|
24
|
+
self.pagination = self.d["Pagination"]
|
25
|
+
self.details = self.d["Details"] || []
|
26
26
|
super(results)
|
27
27
|
rescue Exception => e
|
28
28
|
SparkApi.logger.error "Unable to understand the response! #{d}"
|
@@ -76,6 +76,17 @@ describe ListingCart do
|
|
76
76
|
resource.ListingCount.should eq(11)
|
77
77
|
end
|
78
78
|
|
79
|
+
on_post_it "should add multiple listings to a cart" do
|
80
|
+
listing_ids = ["20110621133454434543000000", "20110621133454434543000001"]
|
81
|
+
stub_api_get("/#{subject.class.element_name}", 'listing_carts/listing_cart.json')
|
82
|
+
resource = subject.class.get.first
|
83
|
+
resource.Id.should eq("20100912153422758914000000")
|
84
|
+
stub_api_post("/#{subject.class.element_name}/#{resource.Id}",'listing_carts/add_listings_post.json', 'listing_carts/add_listings.json')
|
85
|
+
resource.ListingCount.should eq(10)
|
86
|
+
resource.add_listings(listing_ids)
|
87
|
+
resource.ListingCount.should eq(12)
|
88
|
+
end
|
89
|
+
|
79
90
|
on_delete_it "should delete a listing cart" do
|
80
91
|
stub_api_get("/#{subject.class.element_name}", 'listing_carts/listing_cart.json')
|
81
92
|
resource = subject.class.get.first
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spark_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Hornseth
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-12-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -107,6 +107,20 @@ dependencies:
|
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '1.0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: public_suffix
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ~>
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 1.4.6
|
117
|
+
type: :runtime
|
118
|
+
prerelease: false
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ~>
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 1.4.6
|
110
124
|
- !ruby/object:Gem::Dependency
|
111
125
|
name: rake
|
112
126
|
requirement: !ruby/object:Gem::Requirement
|
@@ -397,6 +411,8 @@ files:
|
|
397
411
|
- spec/fixtures/idx_links/get.json
|
398
412
|
- spec/fixtures/listing_carts/add_listing.json
|
399
413
|
- spec/fixtures/listing_carts/add_listing_post.json
|
414
|
+
- spec/fixtures/listing_carts/add_listings.json
|
415
|
+
- spec/fixtures/listing_carts/add_listings_post.json
|
400
416
|
- spec/fixtures/listing_carts/add_portal_cart_listings.json
|
401
417
|
- spec/fixtures/listing_carts/add_portal_cart_listings_post.json
|
402
418
|
- spec/fixtures/listing_carts/empty.json
|
@@ -613,6 +629,7 @@ test_files:
|
|
613
629
|
- spec/fixtures/listing_carts/post.json
|
614
630
|
- spec/fixtures/listing_carts/add_portal_cart_listings_post.json
|
615
631
|
- spec/fixtures/listing_carts/post_portal_cart.json
|
632
|
+
- spec/fixtures/listing_carts/add_listings.json
|
616
633
|
- spec/fixtures/listing_carts/add_listing_post.json
|
617
634
|
- spec/fixtures/listing_carts/add_portal_cart_listings.json
|
618
635
|
- spec/fixtures/listing_carts/empty.json
|
@@ -622,6 +639,7 @@ test_files:
|
|
622
639
|
- spec/fixtures/listing_carts/remove_listing.json
|
623
640
|
- spec/fixtures/listing_carts/listing_portal_cart.json
|
624
641
|
- spec/fixtures/listing_carts/listing_cart.json
|
642
|
+
- spec/fixtures/listing_carts/add_listings_post.json
|
625
643
|
- spec/fixtures/listing_carts/new_portal_cart.json
|
626
644
|
- spec/fixtures/listing_carts/put_name.json
|
627
645
|
- spec/fixtures/listing_carts/put_ids.json
|