Skip to content

Commit a1f690c

Browse files
committed
removed news_feed_meta and can_have_newsfeed? from SavedSearch
1 parent 96a4686 commit a1f690c

File tree

3 files changed

+17
-64
lines changed

3 files changed

+17
-64
lines changed

lib/spark_api/models/news_feed_meta.rb

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,38 @@ module SparkApi
22
module Models
33
class NewsFeedMeta < Base
44

5-
attr_accessor :data
6-
75
self.element_name = "newsfeeds/meta"
86

9-
def initialize
10-
super
11-
@data = connection.get(self.path).first
12-
end
13-
147
def minimum_core_fields
15-
@data['Subscriptions']['SavedSearches']['MinimumCoreFields']
8+
data['Subscriptions']['SavedSearches']['MinimumCoreFields']
169
end
1710

1811
def core_field_names
19-
fields = @data['Subscriptions']['SavedSearches']['CoreSearchFields']
12+
fields = data['Subscriptions']['SavedSearches']['CoreSearchFields']
2013

21-
@data['Subscriptions']['SavedSearches']['CoreStandardFields'].each do |field|
14+
data['Subscriptions']['SavedSearches']['CoreStandardFields'].each do |field|
2215
fields << field[1]['Label']
2316
end
2417

2518
fields
2619
end
2720

2821
def core_fields
29-
fields = @data['Subscriptions']['SavedSearches']['CoreSearchFields']
22+
fields = data['Subscriptions']['SavedSearches']['CoreSearchFields']
3023

31-
@data['Subscriptions']['SavedSearches']['CoreStandardFields'].each do |field|
24+
data['Subscriptions']['SavedSearches']['CoreStandardFields'].each do |field|
3225
fields << field.first
3326
end
3427

3528
fields
3629
end
3730

31+
private
32+
33+
def data
34+
@data ||= connection.get(self.path).first
35+
end
36+
3837
end
3938
end
4039
end

lib/spark_api/models/saved_search.rb

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,9 @@ class SavedSearch < Base
66
include Concerns::Savable,
77
Concerns::Destroyable
88

9-
attr_accessor :newsfeeds
109

1110
self.element_name="savedsearches"
1211

13-
def initialize(attributes={})
14-
@newsfeeds = nil
15-
super(attributes)
16-
end
17-
1812
def self.provided()
1913
Class.new(self).tap do |provided|
2014
provided.element_name = '/savedsearches'
@@ -67,22 +61,12 @@ def listings(args = {})
6761
end
6862

6963
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
8670
end
8771

8872
def has_active_newsfeed?
@@ -119,10 +103,6 @@ def update_contacts(method, contact_id)
119103
end
120104
end
121105

122-
def news_feed_meta
123-
@news_feed_meta ||= NewsFeedMeta.new
124-
end
125-
126106
end
127107

128108
end

spec/unit/spark_api/models/saved_search_spec.rb

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -176,32 +176,6 @@
176176
end
177177
end
178178

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-
205179
describe "has_active_newsfeed?" do
206180
it "should return true if the search already has a newsfeed" do
207181
stub_api_get("/#{subject.class.element_name}/#{id}", 'saved_searches/get.json')

0 commit comments

Comments
 (0)