Skip to content

Commit

Permalink
evolve
Browse files Browse the repository at this point in the history
  • Loading branch information
merefield committed Nov 28, 2023
1 parent 5fda353 commit 689c279
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 16 deletions.
14 changes: 11 additions & 3 deletions lib/topic_location_process.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,27 @@ def self.upsert(topic_id)
)
end

def self.topic_search_from_topic_location(topic_id, distance)
def self.search_topics_from_topic_location(topic_id, distance)
topic_location = TopicLocation.find_by(topic_id: topic_id)

return [] if !topic_location.geocoded?
return [] if !topic_location || !topic_location.geocoded?

topic_location.nearbys(distance, units: :km, select_distance: false, select_bearing: false).joins(:topic).pluck(:topic_id)
end

def self.topic_search_from_location(lat, lon, distance)
def self.search_topics_from_location(lat, lon, distance)

return [] if lon.nil? || lat.nil?

TopicLocation.near([lon.to_f, lat.to_f], distance, units: :km).joins(:topic).pluck(:topic_id)
end

def self.get_topic_distance_from_location(topic_id, lon, lat)
topic_location = TopicLocation.find_by(topic_id: topic_id)

return nil if !topic_location || !topic_location.geocoded?

topic_location.distance_to([lon, lat], units: :km)
end
end
end
37 changes: 24 additions & 13 deletions lib/user_location_process.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,32 +29,43 @@ def self.upsert(user_id)
)
end

def self.search_from_user_location(user_id, distance)
def self.search_users_from_user_location(user_id, distance)
user_location = UserLocation.find_by(user_id: user_id)

return [] if !user_location.geocoded?
return [] if !user_location || !user_location.geocoded?

user_locations = user_location.nearbys(distance, units: :km, select_distance: false, select_bearing: false).joins(:user).pluck(:user_id)

user_locations
user_location.nearbys(distance, units: :km, select_distance: false, select_bearing: false).joins(:user).pluck(:user_id)
end

def self.search_from_location(lat, lon, distance)
def self.search_users_from_location(lat, lon, distance)

return [] if lon.nil? || lat.nil?

UserLocation.near([lon.to_f, lat.to_f], distance.to_f, units: :km, select_distance: false, select_bearing: false).joins(:user).pluck(:user_id)
end

def self.geocode_search(query)
result = Geocoder.search(query).first
"#{result.data['lon']}, #{result.data['lat']}"
def self.get_user_distance_from_location(user_id, lon, lat)
user_location = UserLocation.find_by(user_id: user_id)

return nil if !user_location || !user_location.geocoded?

user_location.distance_to([lon, lat], units: :km)
end

def self.get_user_distance_from_location(username, lon, lat)
user = User.find_by(username: username)
user_loc = UserLocation.find_by(user_id: user.id)
user_loc.distance_to([lon, lat])
def self.search_topics_from_user_location(user_id, distance)
user_location = UserLocation.find_by(user_id: user_id)

return [] if !user_location || !user_location.geocoded?

TopicLocation.near(distance, units: :km, select_distance: false, select_bearing: false).joins(:topic).pluck(:topic_id)
end

def self.search_users_from_topic_location(topic_id, distance)
topic_location = TopicLocation.find_by(user_id: topic_id)

return [] if !topic_location || !topic_location.geocoded?

UserLocation.near(distance, units: :km, select_distance: false, select_bearing: false).joins(:user).pluck(:user_id)
end
end
end

0 comments on commit 689c279

Please sign in to comment.