spark_api 1.5.0 → 1.5.1

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
  SHA256:
3
- metadata.gz: 17eaaa74af21a3a858941c286e4731ae9d67d1b315f06f5a3409d78d7d4fa89e
4
- data.tar.gz: 51373eaa638eefed5245d88d78cc0e1374d75cdfe385c3c358d4d40348059514
3
+ metadata.gz: b9c9695944207ba64adf36cd6417e6f534222643a04058581af5451ef4e0361e
4
+ data.tar.gz: 4911595b9144031b4659ef04bbd1ca8689090e23297d686741c26649c359b0ed
5
5
  SHA512:
6
- metadata.gz: 7d81cd63e089a1182557cdeb95ab1e52d526904879294f66e22026c68d3dd4dd5ec8408763fd9d62ac72a9fcf23964ee9eec3d5e6e104a214e33c5a46ece21f7
7
- data.tar.gz: c44265855abe3384dea240410e96230b68fca9f9ac3cef702feb1ff0e05d026d571833591d5fa4865c21f04dc9f48d7f2987ffc9895088ac5c4431d73fa9b3c0
6
+ metadata.gz: d1e45e5ebb03f2561b2d1a8234510598ced6b3816f961dd84e2200f66359bd22a6360b4bdba06bfcaad46e2a5bbac5c22cb03611dc0b4b249ea001ac5022964b
7
+ data.tar.gz: 5259a965c9131db98ef5c9ca876f59189a43274fa30c780c98b1d56b1d762fd974f9a618a407e0daf0d16c9f1e0b690ffd0a500dfe4f225c9eadc2b81091ec6e
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.0
1
+ 1.5.1
@@ -25,6 +25,7 @@ require 'spark_api/models/listing'
25
25
  require 'spark_api/models/listing_cart'
26
26
  require 'spark_api/models/listing_meta_translations'
27
27
  require 'spark_api/models/market_statistics'
28
+ require 'spark_api/models/media'
28
29
  require 'spark_api/models/message'
29
30
  require 'spark_api/models/news_feed_meta'
30
31
  require 'spark_api/models/newsfeed'
@@ -0,0 +1,30 @@
1
+ module SparkApi
2
+ module Models
3
+ module Media
4
+ # This module is effectively an interface and helper to combine common media
5
+ # actions and information. Media types (videos, virtual tours, etc)
6
+ # should include this module and implement the methods contained
7
+
8
+ def url
9
+ raise "Not Implemented"
10
+ end
11
+
12
+ def description
13
+ raise "Not Implemented"
14
+ end
15
+
16
+ def private?
17
+ attributes['Privacy'] == 'Private'
18
+ end
19
+
20
+ def public?
21
+ attributes['Privacy'] == 'Public'
22
+ end
23
+
24
+ def automatic?
25
+ attributes['Privacy'] == 'Automatic'
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -1,7 +1,12 @@
1
+ require 'net/http'
1
2
  module SparkApi
2
3
  module Models
3
4
  class Video < Base
4
5
  extend Subresource
6
+ include Media
7
+ include Concerns::Savable,
8
+ Concerns::Destroyable
9
+
5
10
  self.element_name = 'videos'
6
11
 
7
12
  def branded?
@@ -11,6 +16,109 @@ module SparkApi
11
16
  def unbranded?
12
17
  attributes['Type'] == 'unbranded'
13
18
  end
19
+
20
+ def url
21
+ attributes['ObjectHtml']
22
+ end
23
+
24
+ def description
25
+ attributes['Name']
26
+ end
27
+
28
+ # Some youtube URLS are youtu.be instead of youtube
29
+ SUPPORTED_VIDEO_TYPES = %w[vimeo youtu].freeze
30
+
31
+ def is_supported_type?
32
+ # Unfortunately there are so many formats of vimeo videos that we canot support all vimeo videos
33
+ # Therefore, we need to do a little more checking here and validate that we can get video codes out of the urls
34
+ (self.ObjectHtml.include?('youtu') && youtube_video_code.present?) || (self.ObjectHtml.include?('vimeo') && vimeo_video_code.present?)
35
+ end
36
+
37
+ def is_valid_iframe?
38
+ self.ObjectHtml.include?('<iframe') && self.ObjectHtml.include?('</iframe>')
39
+ end
40
+
41
+ # gets the thumbnail to be shown on supported (Vimeo and Youtube) videos
42
+ # YouTube provides a predictable url for each video's images
43
+ # for Vimeo, a get request is necessary
44
+ def display_image
45
+ url = self.video_link
46
+ if url
47
+ if(url.include?('youtube'))
48
+ youtube_thumbnail_url
49
+ else
50
+ vimeo_thumbnail_url
51
+ end
52
+ end
53
+ end
54
+
55
+ def video_link
56
+ return nil unless is_supported_type?
57
+
58
+ if self.ObjectHtml.include?('youtu')
59
+ youtube_link
60
+ elsif self.ObjectHtml.include?('vimeo')
61
+ vimeo_link
62
+ end
63
+ end
64
+
65
+ private
66
+
67
+ def vimeo_video_code
68
+ html = self.ObjectHtml
69
+ if html.match(/(src=)('|")((https:)?\/\/player\.vimeo\.com\/video\/)/)
70
+ new_url = html.split(/(src=')|(src=")/)
71
+ if new_url[2]
72
+ html = new_url[2].split(/("|')/)[0]
73
+ end
74
+ end
75
+ if html.match(/(?:.+?)?(player\.vimeo\.com|vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|)(\d+)(?:$|\/|\?))/)
76
+ code = html.split('/').last.split('?').first
77
+ # Vimeo Ids are always numerical
78
+ code.to_i.to_s === code ? code : nil
79
+ else
80
+ nil
81
+ end
82
+ end
83
+
84
+ # This if correctly embedded by the user is an embed
85
+ # If not, it could be pretty much anything
86
+ def youtube_video_code
87
+ html = self.ObjectHtml
88
+ if html.match(/(?:.+?)?(?:\/v\/|watch\/|\?v=|\&v=|youtu\.be\/|\/v=|^youtu\.be\/|embed\/|watch\%3Fv\%3D)([a-zA-Z0-9_-]{11})/) || html.match(/(iframe)(.*)(src=)('|")(https:\/\/www\.youtube\.com\/embed)/)
89
+ html.split(/([a-zA-Z0-9_-]{11})/)[1]
90
+ else
91
+ nil
92
+ end
93
+ end
94
+
95
+ def youtube_link
96
+ normalize_youtube_url
97
+ code = youtube_video_code
98
+ code ? "https://www.youtube.com/watch?v=#{code}" : nil
99
+ end
100
+
101
+ def vimeo_link
102
+ code = vimeo_video_code
103
+ code ? "https://vimeo.com/#{code}" : nil
104
+ end
105
+
106
+ def youtube_thumbnail_url
107
+ code = youtube_video_code
108
+ code ? "https://i1.ytimg.com/vi/#{code}/hqdefault.jpg" : nil
109
+ end
110
+
111
+ def vimeo_thumbnail_url
112
+ # due to the rate limiting issue that surfaced shortly before launch,
113
+ # we will temporarily not return vimeo thumbnails until
114
+ # there is bandwidth to implement the solution in FLEX-9959
115
+ return nil
116
+ end
117
+
118
+ def normalize_youtube_url
119
+ self.ObjectHtml.sub!('-nocookie', '')
120
+ end
121
+
14
122
  end
15
123
  end
16
124
  end
@@ -2,6 +2,10 @@ module SparkApi
2
2
  module Models
3
3
  class VirtualTour < Base
4
4
  extend Subresource
5
+ include Media
6
+ include Concerns::Savable,
7
+ Concerns::Destroyable
8
+
5
9
  self.element_name="virtualtours"
6
10
 
7
11
 
@@ -13,6 +17,18 @@ module SparkApi
13
17
  attributes["Type"] == "unbranded"
14
18
  end
15
19
 
20
+ def url
21
+ attributes['Uri']
22
+ end
23
+
24
+ def description
25
+ attributes['Name']
26
+ end
27
+
28
+ def display_image
29
+ # Currently we have no universally good mechanism to get images for virtual tours
30
+ return nil
31
+ end
16
32
  end
17
33
  end
18
34
  end
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.5.0
4
+ version: 1.5.1
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: 2020-12-31 00:00:00.000000000 Z
12
+ date: 2021-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -273,6 +273,7 @@ files:
273
273
  - lib/spark_api/models/listing_cart.rb
274
274
  - lib/spark_api/models/listing_meta_translations.rb
275
275
  - lib/spark_api/models/market_statistics.rb
276
+ - lib/spark_api/models/media.rb
276
277
  - lib/spark_api/models/message.rb
277
278
  - lib/spark_api/models/news_feed_meta.rb
278
279
  - lib/spark_api/models/newsfeed.rb
@@ -538,203 +539,203 @@ signing_key:
538
539
  specification_version: 4
539
540
  summary: A library for interacting with the Spark web services.
540
541
  test_files:
541
- - spec/fixtures/accounts/all.json
542
+ - spec/fixtures/fields/settings.json
543
+ - spec/fixtures/fields/order.json
544
+ - spec/fixtures/fields/order_a.json
545
+ - spec/fixtures/empty.json
546
+ - spec/fixtures/finders.json
542
547
  - spec/fixtures/accounts/my_put.json
548
+ - spec/fixtures/accounts/password_save.json
549
+ - spec/fixtures/accounts/my.json
543
550
  - spec/fixtures/accounts/my_portal.json
544
551
  - spec/fixtures/accounts/office.json
545
- - spec/fixtures/accounts/my.json
546
- - spec/fixtures/accounts/password_save.json
552
+ - spec/fixtures/accounts/all.json
547
553
  - spec/fixtures/accounts/my_save.json
554
+ - spec/fixtures/base.json
555
+ - spec/fixtures/success.json
556
+ - spec/fixtures/property_types/property_types.json
557
+ - spec/fixtures/saved_searches/get.json
558
+ - spec/fixtures/saved_searches/without_newsfeed.json
559
+ - spec/fixtures/saved_searches/with_inactive_newsfeed.json
560
+ - spec/fixtures/saved_searches/get_provided.json
561
+ - spec/fixtures/saved_searches/update.json
562
+ - spec/fixtures/saved_searches/post.json
563
+ - spec/fixtures/saved_searches/new.json
564
+ - spec/fixtures/saved_searches/with_newsfeed.json
565
+ - spec/fixtures/standardfields/stateorprovince.json
566
+ - spec/fixtures/standardfields/standardfields.json
567
+ - spec/fixtures/standardfields/city.json
568
+ - spec/fixtures/standardfields/nearby.json
569
+ - spec/fixtures/portal/my.json
570
+ - spec/fixtures/portal/my_non_existant.json
571
+ - spec/fixtures/portal/enable.json
572
+ - spec/fixtures/portal/post.json
573
+ - spec/fixtures/portal/disable.json
574
+ - spec/fixtures/portal/new.json
575
+ - spec/fixtures/oauth2_error.json
576
+ - spec/fixtures/sharedlinks/success.json
548
577
  - spec/fixtures/authentication_failure.json
549
- - spec/fixtures/notes/new.json
550
- - spec/fixtures/notes/agent_shared.json
551
- - spec/fixtures/notes/agent_shared_empty.json
552
- - spec/fixtures/notes/add.json
553
- - spec/fixtures/contacts/new_empty.json
554
- - spec/fixtures/contacts/contacts.json
555
- - spec/fixtures/contacts/new.json
556
- - spec/fixtures/contacts/tags.json
557
- - spec/fixtures/contacts/post.json
578
+ - spec/fixtures/activities/get.json
579
+ - spec/fixtures/idx_links/get.json
580
+ - spec/fixtures/contacts/my.json
558
581
  - spec/fixtures/contacts/vow_accounts/get.json
559
- - spec/fixtures/contacts/vow_accounts/new.json
560
582
  - spec/fixtures/contacts/vow_accounts/edit.json
561
583
  - spec/fixtures/contacts/vow_accounts/post.json
562
- - spec/fixtures/contacts/my.json
584
+ - spec/fixtures/contacts/vow_accounts/new.json
585
+ - spec/fixtures/contacts/new_empty.json
586
+ - spec/fixtures/contacts/post.json
587
+ - spec/fixtures/contacts/new.json
588
+ - spec/fixtures/contacts/tags.json
563
589
  - spec/fixtures/contacts/new_notify.json
564
- - spec/fixtures/session.json
590
+ - spec/fixtures/contacts/contacts.json
565
591
  - spec/fixtures/no_results.json
566
- - spec/fixtures/base.json
567
- - spec/fixtures/success.json
568
- - spec/fixtures/logo_fbs.png
569
- - spec/fixtures/search_templates/quick_searches/get.json
592
+ - spec/fixtures/generic_delete.json
570
593
  - spec/fixtures/sorts/get.json
571
- - spec/fixtures/errors/expired.json
572
- - spec/fixtures/errors/failure_with_constraint.json
573
- - spec/fixtures/errors/failure.json
574
- - spec/fixtures/errors/failure_with_msg.json
575
- - spec/fixtures/oauth2_error.json
576
- - spec/fixtures/portal/my_non_existant.json
577
- - spec/fixtures/portal/new.json
578
- - spec/fixtures/portal/enable.json
579
- - spec/fixtures/portal/disable.json
580
- - spec/fixtures/portal/post.json
581
- - spec/fixtures/portal/my.json
582
- - spec/fixtures/rules/get.json
583
- - spec/fixtures/messages/new_empty.json
584
- - spec/fixtures/messages/get.json
585
- - spec/fixtures/messages/new_with_recipients.json
586
- - spec/fixtures/messages/new.json
587
- - spec/fixtures/messages/post.json
588
- - spec/fixtures/messages/count.json
594
+ - spec/fixtures/search_templates/quick_searches/get.json
589
595
  - spec/fixtures/comments/get.json
590
- - spec/fixtures/comments/new.json
591
596
  - spec/fixtures/comments/post.json
592
- - spec/fixtures/fields/settings.json
593
- - spec/fixtures/fields/order.json
594
- - spec/fixtures/fields/order_a.json
595
- - spec/fixtures/generic_failure.json
596
- - spec/fixtures/listing_carts/add_listings.json
597
- - spec/fixtures/listing_carts/listing_portal_cart.json
598
- - spec/fixtures/listing_carts/remove_listing.json
599
- - spec/fixtures/listing_carts/post_portal_cart.json
600
- - spec/fixtures/listing_carts/add_portal_cart_listings_post.json
601
- - spec/fixtures/listing_carts/put.json
602
- - spec/fixtures/listing_carts/new_portal_cart.json
603
- - spec/fixtures/listing_carts/new.json
604
- - spec/fixtures/listing_carts/add_listing_post.json
605
- - spec/fixtures/listing_carts/add_listings_post.json
606
- - spec/fixtures/listing_carts/put_ids.json
607
- - spec/fixtures/listing_carts/add_listing.json
608
- - spec/fixtures/listing_carts/post.json
609
- - spec/fixtures/listing_carts/listing_cart.json
610
- - spec/fixtures/listing_carts/empty.json
611
- - spec/fixtures/listing_carts/add_portal_cart_listings.json
612
- - spec/fixtures/listing_carts/put_name.json
613
- - spec/fixtures/notifications/new_empty.json
614
- - spec/fixtures/notifications/mark_read.json
615
- - spec/fixtures/notifications/new.json
616
- - spec/fixtures/notifications/notifications.json
617
- - spec/fixtures/notifications/post.json
618
- - spec/fixtures/notifications/unread.json
619
- - spec/fixtures/listing_meta_translations/get.json
620
- - spec/fixtures/finders.json
621
- - spec/fixtures/generic_delete.json
622
- - spec/fixtures/empty.json
623
- - spec/fixtures/oauth2/error.json
624
- - spec/fixtures/oauth2/access_with_old_refresh.json
625
- - spec/fixtures/oauth2/authorization_code_body.json
626
- - spec/fixtures/oauth2/password_body.json
627
- - spec/fixtures/oauth2/access.json
628
- - spec/fixtures/oauth2/access_with_refresh.json
629
- - spec/fixtures/oauth2/refresh_body.json
630
- - spec/fixtures/newsfeeds/get.json
631
- - spec/fixtures/newsfeeds/inactive.json
632
- - spec/fixtures/newsfeeds/meta.json
633
- - spec/fixtures/listings/rental_calendar.json
597
+ - spec/fixtures/comments/new.json
598
+ - spec/fixtures/session.json
599
+ - spec/fixtures/notes/agent_shared.json
600
+ - spec/fixtures/notes/add.json
601
+ - spec/fixtures/notes/new.json
602
+ - spec/fixtures/notes/agent_shared_empty.json
603
+ - spec/fixtures/logo_fbs.png
604
+ - spec/fixtures/listings/no_subresources.json
634
605
  - spec/fixtures/listings/constraints_with_pagination.json
635
- - spec/fixtures/listings/with_supplement.json
606
+ - spec/fixtures/listings/open_houses.json
636
607
  - spec/fixtures/listings/put_expiration_date.json
637
- - spec/fixtures/listings/with_rental_calendar.json
638
- - spec/fixtures/listings/shared_listing_get.json
639
- - spec/fixtures/listings/photos/rotate.json
640
- - spec/fixtures/listings/photos/new.json
641
- - spec/fixtures/listings/photos/rollback.json
642
- - spec/fixtures/listings/photos/post.json
643
- - spec/fixtures/listings/photos/batch_delete.json
644
- - spec/fixtures/listings/photos/index.json
645
608
  - spec/fixtures/listings/tour_of_homes_search.json
646
- - spec/fixtures/listings/virtual_tours_index.json
647
- - spec/fixtures/listings/multiple.json
648
- - spec/fixtures/listings/shared_listing_new.json
649
- - spec/fixtures/listings/put.json
609
+ - spec/fixtures/listings/reorder_photo.json
650
610
  - spec/fixtures/listings/shared_listing_post.json
611
+ - spec/fixtures/listings/multiple.json
612
+ - spec/fixtures/listings/with_videos.json
613
+ - spec/fixtures/listings/with_supplement.json
614
+ - spec/fixtures/listings/photos/index.json
615
+ - spec/fixtures/listings/photos/post.json
616
+ - spec/fixtures/listings/photos/new.json
617
+ - spec/fixtures/listings/photos/batch_delete.json
618
+ - spec/fixtures/listings/photos/rollback.json
619
+ - spec/fixtures/listings/photos/rotate.json
620
+ - spec/fixtures/listings/floplans_index.json
621
+ - spec/fixtures/listings/with_vtour.json
622
+ - spec/fixtures/listings/with_rental_calendar.json
651
623
  - spec/fixtures/listings/videos_index.json
624
+ - spec/fixtures/listings/rental_calendar.json
625
+ - spec/fixtures/listings/with_photos.json
626
+ - spec/fixtures/listings/shared_listing_get.json
627
+ - spec/fixtures/listings/tour_of_homes.json
652
628
  - spec/fixtures/listings/document_index.json
653
- - spec/fixtures/listings/with_permissions.json
654
629
  - spec/fixtures/listings/constraints.json
655
- - spec/fixtures/listings/with_vtour.json
656
- - spec/fixtures/listings/with_photos.json
657
- - spec/fixtures/listings/no_subresources.json
658
- - spec/fixtures/listings/with_videos.json
630
+ - spec/fixtures/listings/put.json
631
+ - spec/fixtures/listings/with_permissions.json
659
632
  - spec/fixtures/listings/with_documents.json
660
- - spec/fixtures/listings/reorder_photo.json
661
- - spec/fixtures/listings/floplans_index.json
662
- - spec/fixtures/listings/tour_of_homes.json
663
633
  - spec/fixtures/listings/put_reorder_photo.json
664
- - spec/fixtures/listings/open_houses.json
665
- - spec/fixtures/standardfields/stateorprovince.json
666
- - spec/fixtures/standardfields/standardfields.json
667
- - spec/fixtures/standardfields/city.json
668
- - spec/fixtures/standardfields/nearby.json
634
+ - spec/fixtures/listings/shared_listing_new.json
635
+ - spec/fixtures/listings/virtual_tours_index.json
636
+ - spec/fixtures/listing_meta_translations/get.json
637
+ - spec/fixtures/notifications/unread.json
638
+ - spec/fixtures/notifications/new_empty.json
639
+ - spec/fixtures/notifications/notifications.json
640
+ - spec/fixtures/notifications/post.json
641
+ - spec/fixtures/notifications/new.json
642
+ - spec/fixtures/notifications/mark_read.json
643
+ - spec/fixtures/rules/get.json
644
+ - spec/fixtures/oauth2/access.json
645
+ - spec/fixtures/oauth2/access_with_old_refresh.json
646
+ - spec/fixtures/oauth2/authorization_code_body.json
647
+ - spec/fixtures/oauth2/password_body.json
648
+ - spec/fixtures/oauth2/refresh_body.json
649
+ - spec/fixtures/oauth2/error.json
650
+ - spec/fixtures/oauth2/access_with_refresh.json
651
+ - spec/fixtures/messages/get.json
652
+ - spec/fixtures/messages/new_empty.json
653
+ - spec/fixtures/messages/post.json
654
+ - spec/fixtures/messages/new.json
655
+ - spec/fixtures/messages/new_with_recipients.json
656
+ - spec/fixtures/messages/count.json
669
657
  - spec/fixtures/count.json
670
- - spec/fixtures/saved_searches/with_inactive_newsfeed.json
671
- - spec/fixtures/saved_searches/get_provided.json
672
- - spec/fixtures/saved_searches/get.json
673
- - spec/fixtures/saved_searches/with_newsfeed.json
674
- - spec/fixtures/saved_searches/new.json
675
- - spec/fixtures/saved_searches/post.json
676
- - spec/fixtures/saved_searches/update.json
677
- - spec/fixtures/saved_searches/without_newsfeed.json
678
- - spec/fixtures/idx_links/get.json
679
- - spec/fixtures/property_types/property_types.json
680
- - spec/fixtures/sharedlinks/success.json
681
- - spec/fixtures/activities/get.json
682
- - spec/unit/spark_api/authentication/base_auth_spec.rb
683
- - spec/unit/spark_api/authentication/api_auth_spec.rb
684
- - spec/unit/spark_api/authentication/oauth2_impl/grant_type_base_spec.rb
685
- - spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb
686
- - spec/unit/spark_api/authentication/oauth2_impl/faraday_middleware_spec.rb
687
- - spec/unit/spark_api/authentication/oauth2_spec.rb
688
- - spec/unit/spark_api/options_hash_spec.rb
689
- - spec/unit/spark_api/paginate_spec.rb
690
- - spec/unit/spark_api/request_spec.rb
691
- - spec/unit/spark_api/authentication_spec.rb
692
- - spec/unit/spark_api/primary_array_spec.rb
658
+ - spec/fixtures/generic_failure.json
659
+ - spec/fixtures/newsfeeds/get.json
660
+ - spec/fixtures/newsfeeds/meta.json
661
+ - spec/fixtures/newsfeeds/inactive.json
662
+ - spec/fixtures/errors/expired.json
663
+ - spec/fixtures/errors/failure_with_constraint.json
664
+ - spec/fixtures/errors/failure_with_msg.json
665
+ - spec/fixtures/errors/failure.json
666
+ - spec/fixtures/listing_carts/post_portal_cart.json
667
+ - spec/fixtures/listing_carts/empty.json
668
+ - spec/fixtures/listing_carts/put_name.json
669
+ - spec/fixtures/listing_carts/add_portal_cart_listings_post.json
670
+ - spec/fixtures/listing_carts/add_listings_post.json
671
+ - spec/fixtures/listing_carts/new_portal_cart.json
672
+ - spec/fixtures/listing_carts/remove_listing.json
673
+ - spec/fixtures/listing_carts/add_listing_post.json
674
+ - spec/fixtures/listing_carts/add_listing.json
675
+ - spec/fixtures/listing_carts/post.json
676
+ - spec/fixtures/listing_carts/new.json
677
+ - spec/fixtures/listing_carts/listing_portal_cart.json
678
+ - spec/fixtures/listing_carts/add_listings.json
679
+ - spec/fixtures/listing_carts/put.json
680
+ - spec/fixtures/listing_carts/add_portal_cart_listings.json
681
+ - spec/fixtures/listing_carts/put_ids.json
682
+ - spec/fixtures/listing_carts/listing_cart.json
693
683
  - spec/unit/spark_api/configuration_spec.rb
694
- - spec/unit/spark_api/models/property_types_spec.rb
695
- - spec/unit/spark_api/models/listing_spec.rb
696
- - spec/unit/spark_api/models/video_spec.rb
697
- - spec/unit/spark_api/models/sort_spec.rb
698
- - spec/unit/spark_api/models/finders_spec.rb
699
684
  - spec/unit/spark_api/models/document_spec.rb
700
- - spec/unit/spark_api/models/vow_account_spec.rb
685
+ - spec/unit/spark_api/models/rental_calendar_spec.rb
686
+ - spec/unit/spark_api/models/system_info_spec.rb
687
+ - spec/unit/spark_api/models/listing_spec.rb
701
688
  - spec/unit/spark_api/models/listing_meta_translations_spec.rb
702
- - spec/unit/spark_api/models/fields_spec.rb
689
+ - spec/unit/spark_api/models/contact_spec.rb
703
690
  - spec/unit/spark_api/models/concerns/destroyable_spec.rb
704
691
  - spec/unit/spark_api/models/concerns/savable_spec.rb
705
- - spec/unit/spark_api/models/activity_spec.rb
692
+ - spec/unit/spark_api/models/video_spec.rb
693
+ - spec/unit/spark_api/models/shared_listing_spec.rb
694
+ - spec/unit/spark_api/models/email_link_spec.rb
695
+ - spec/unit/spark_api/models/note_spec.rb
706
696
  - spec/unit/spark_api/models/rule_spec.rb
707
- - spec/unit/spark_api/models/listing_cart_spec.rb
697
+ - spec/unit/spark_api/models/vow_account_spec.rb
708
698
  - spec/unit/spark_api/models/account_report_spec.rb
709
- - spec/unit/spark_api/models/contact_spec.rb
710
- - spec/unit/spark_api/models/email_link_spec.rb
711
- - spec/unit/spark_api/models/notification_spec.rb
699
+ - spec/unit/spark_api/models/tour_of_home_spec.rb
700
+ - spec/unit/spark_api/models/activity_spec.rb
701
+ - spec/unit/spark_api/models/saved_search_spec.rb
702
+ - spec/unit/spark_api/models/listing_cart_spec.rb
703
+ - spec/unit/spark_api/models/subresource_spec.rb
704
+ - spec/unit/spark_api/models/newsfeed_spec.rb
705
+ - spec/unit/spark_api/models/portal_spec.rb
706
+ - spec/unit/spark_api/models/photo_spec.rb
707
+ - spec/unit/spark_api/models/virtual_tour_spec.rb
708
+ - spec/unit/spark_api/models/news_feed_meta_spec.rb
709
+ - spec/unit/spark_api/models/sort_spec.rb
712
710
  - spec/unit/spark_api/models/open_house_spec.rb
713
- - spec/unit/spark_api/models/search_template/quick_search_spec.rb
714
- - spec/unit/spark_api/models/constraint_spec.rb
715
- - spec/unit/spark_api/models/dirty_spec.rb
716
- - spec/unit/spark_api/models/note_spec.rb
717
- - spec/unit/spark_api/models/standard_fields_spec.rb
718
- - spec/unit/spark_api/models/connect_prefs_spec.rb
711
+ - spec/unit/spark_api/models/fields_spec.rb
719
712
  - spec/unit/spark_api/models/message_spec.rb
713
+ - spec/unit/spark_api/models/connect_prefs_spec.rb
720
714
  - spec/unit/spark_api/models/base_spec.rb
721
- - spec/unit/spark_api/models/floplan_spec.rb
722
- - spec/unit/spark_api/models/subresource_spec.rb
723
- - spec/unit/spark_api/models/system_info_spec.rb
724
- - spec/unit/spark_api/models/virtual_tour_spec.rb
725
- - spec/unit/spark_api/models/tour_of_home_spec.rb
726
- - spec/unit/spark_api/models/shared_link_spec.rb
727
- - spec/unit/spark_api/models/photo_spec.rb
728
715
  - spec/unit/spark_api/models/account_spec.rb
729
- - spec/unit/spark_api/models/saved_search_spec.rb
716
+ - spec/unit/spark_api/models/dirty_spec.rb
717
+ - spec/unit/spark_api/models/finders_spec.rb
730
718
  - spec/unit/spark_api/models/defaultable_spec.rb
731
- - spec/unit/spark_api/models/news_feed_meta_spec.rb
732
- - spec/unit/spark_api/models/rental_calendar_spec.rb
733
- - spec/unit/spark_api/models/shared_listing_spec.rb
734
- - spec/unit/spark_api/models/newsfeed_spec.rb
735
- - spec/unit/spark_api/models/portal_spec.rb
719
+ - spec/unit/spark_api/models/notification_spec.rb
720
+ - spec/unit/spark_api/models/property_types_spec.rb
721
+ - spec/unit/spark_api/models/standard_fields_spec.rb
722
+ - spec/unit/spark_api/models/shared_link_spec.rb
723
+ - spec/unit/spark_api/models/constraint_spec.rb
724
+ - spec/unit/spark_api/models/search_template/quick_search_spec.rb
725
+ - spec/unit/spark_api/models/floplan_spec.rb
726
+ - spec/unit/spark_api/faraday_middleware_spec.rb
727
+ - spec/unit/spark_api/paginate_spec.rb
728
+ - spec/unit/spark_api/authentication/api_auth_spec.rb
729
+ - spec/unit/spark_api/authentication/base_auth_spec.rb
730
+ - spec/unit/spark_api/authentication/oauth2_impl/faraday_middleware_spec.rb
731
+ - spec/unit/spark_api/authentication/oauth2_impl/grant_type_base_spec.rb
732
+ - spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb
733
+ - spec/unit/spark_api/authentication/oauth2_spec.rb
736
734
  - spec/unit/spark_api/configuration/yaml_spec.rb
737
735
  - spec/unit/spark_api/multi_client_spec.rb
738
- - spec/unit/spark_api/faraday_middleware_spec.rb
736
+ - spec/unit/spark_api/authentication_spec.rb
737
+ - spec/unit/spark_api/options_hash_spec.rb
738
+ - spec/unit/spark_api/primary_array_spec.rb
739
+ - spec/unit/spark_api/request_spec.rb
739
740
  - spec/unit/spark_api_spec.rb
740
741
  - spec/spec_helper.rb