spark_api 1.5.0 → 1.5.1

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 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