File tree Expand file tree Collapse file tree 3 files changed +17
-64
lines changed
spec/unit/spark_api/models Expand file tree Collapse file tree 3 files changed +17
-64
lines changed Original file line number Diff line number Diff line change @@ -2,39 +2,38 @@ module SparkApi
2
2
module Models
3
3
class NewsFeedMeta < Base
4
4
5
- attr_accessor :data
6
-
7
5
self . element_name = "newsfeeds/meta"
8
6
9
- def initialize
10
- super
11
- @data = connection . get ( self . path ) . first
12
- end
13
-
14
7
def minimum_core_fields
15
- @ data[ 'Subscriptions' ] [ 'SavedSearches' ] [ 'MinimumCoreFields' ]
8
+ data [ 'Subscriptions' ] [ 'SavedSearches' ] [ 'MinimumCoreFields' ]
16
9
end
17
10
18
11
def core_field_names
19
- fields = @ data[ 'Subscriptions' ] [ 'SavedSearches' ] [ 'CoreSearchFields' ]
12
+ fields = data [ 'Subscriptions' ] [ 'SavedSearches' ] [ 'CoreSearchFields' ]
20
13
21
- @ data[ 'Subscriptions' ] [ 'SavedSearches' ] [ 'CoreStandardFields' ] . each do |field |
14
+ data [ 'Subscriptions' ] [ 'SavedSearches' ] [ 'CoreStandardFields' ] . each do |field |
22
15
fields << field [ 1 ] [ 'Label' ]
23
16
end
24
17
25
18
fields
26
19
end
27
20
28
21
def core_fields
29
- fields = @ data[ 'Subscriptions' ] [ 'SavedSearches' ] [ 'CoreSearchFields' ]
22
+ fields = data [ 'Subscriptions' ] [ 'SavedSearches' ] [ 'CoreSearchFields' ]
30
23
31
- @ data[ 'Subscriptions' ] [ 'SavedSearches' ] [ 'CoreStandardFields' ] . each do |field |
24
+ data [ 'Subscriptions' ] [ 'SavedSearches' ] [ 'CoreStandardFields' ] . each do |field |
32
25
fields << field . first
33
26
end
34
27
35
28
fields
36
29
end
37
30
31
+ private
32
+
33
+ def data
34
+ @data ||= connection . get ( self . path ) . first
35
+ end
36
+
38
37
end
39
38
end
40
39
end
Original file line number Diff line number Diff line change @@ -6,15 +6,9 @@ class SavedSearch < Base
6
6
include Concerns ::Savable ,
7
7
Concerns ::Destroyable
8
8
9
- attr_accessor :newsfeeds
10
9
11
10
self . element_name = "savedsearches"
12
11
13
- def initialize ( attributes = { } )
14
- @newsfeeds = nil
15
- super ( attributes )
16
- end
17
-
18
12
def self . provided ( )
19
13
Class . new ( self ) . tap do |provided |
20
14
provided . element_name = '/savedsearches'
@@ -67,22 +61,12 @@ def listings(args = {})
67
61
end
68
62
69
63
def newsfeeds
70
- Newsfeed . collect ( connection . get ( "#{ self . class . path } /#{ @attributes [ "Id" ] } " ,
71
- :_expand => "NewsFeeds" ) . first [ "NewsFeeds" ] )
72
- end
73
-
74
- def can_have_newsfeed?
75
-
76
- return true if has_active_newsfeed? || has_inactive_newsfeed?
77
-
78
- number_of_filters = 0
79
-
80
- news_feed_meta . core_fields . each do |field |
81
- number_of_filters += 1 if self . Filter . include? field
82
- end
83
-
84
- number_of_filters >= news_feed_meta . minimum_core_fields
85
-
64
+ @newsfeeds ||= if attributes . key? ( "NewsFeeds" )
65
+ Newsfeed . collect ( attributes [ "NewsFeeds" ] )
66
+ else
67
+ Newsfeed . collect ( connection . get ( "#{ self . class . path } /#{ @attributes [ "Id" ] } " ,
68
+ :_expand => "NewsFeeds" ) . first [ "NewsFeeds" ] )
69
+ end
86
70
end
87
71
88
72
def has_active_newsfeed?
@@ -119,10 +103,6 @@ def update_contacts(method, contact_id)
119
103
end
120
104
end
121
105
122
- def news_feed_meta
123
- @news_feed_meta ||= NewsFeedMeta . new
124
- end
125
-
126
106
end
127
107
128
108
end
Original file line number Diff line number Diff line change 176
176
end
177
177
end
178
178
179
- describe "can_have_newsfeed?" do
180
-
181
- before do
182
- stub_api_get ( "/newsfeeds/meta" , "newsfeeds/meta.json" )
183
- end
184
-
185
- it "should return false without at least three filter parameters" do
186
- stub_api_get ( "/#{ subject . class . element_name } /#{ id } " , 'saved_searches/get.json' )
187
- resource = subject . class . find ( id )
188
- resource . stub ( :has_active_newsfeed? ) { false }
189
- resource . stub ( :has_inactive_newsfeed? ) { false }
190
- resource . Filter = "MlsStatus Eq 'Active' And PropertyType Eq 'A'"
191
- resource . can_have_newsfeed? . should == false
192
- end
193
-
194
- it "should return true with three filter parameters" do
195
- stub_api_get ( "/#{ subject . class . element_name } /#{ id } " , 'saved_searches/get.json' )
196
- resource = subject . class . find ( id )
197
- resource . stub ( :has_active_newsfeed? ) { false }
198
- resource . stub ( :has_inactive_newsfeed? ) { false }
199
- resource . Filter = "MlsStatus Eq 'Active' And PropertyType Eq 'A' And ListPrice Eq 1000000"
200
- resource . can_have_newsfeed? . should == true
201
- end
202
-
203
- end
204
-
205
179
describe "has_active_newsfeed?" do
206
180
it "should return true if the search already has a newsfeed" do
207
181
stub_api_get ( "/#{ subject . class . element_name } /#{ id } " , 'saved_searches/get.json' )
You can’t perform that action at this time.
0 commit comments