mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 01:01:39 -05:00
* Implement some performance improvements and caching for various features. * Fix failing tests * Implement routes behaviour in map v2 to match map v1 * Fix route highlighting * Add fallbacks when retrieving full route features to handle cases where source data access methods vary. * Fix some e2e tests
39 lines
991 B
Ruby
39 lines
991 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Cache::InvalidateUserCaches
|
|
# Invalidates user-specific caches that depend on point data.
|
|
# This should be called after:
|
|
# - Reverse geocoding operations (updates country/city data)
|
|
# - Stats calculations (updates geocoding stats)
|
|
# - Bulk point imports/updates
|
|
def initialize(user_id)
|
|
@user_id = user_id
|
|
end
|
|
|
|
def call
|
|
invalidate_countries_visited
|
|
invalidate_cities_visited
|
|
invalidate_points_geocoded_stats
|
|
invalidate_total_distance
|
|
end
|
|
|
|
def invalidate_countries_visited
|
|
Rails.cache.delete("dawarich/user_#{user_id}_countries_visited")
|
|
end
|
|
|
|
def invalidate_cities_visited
|
|
Rails.cache.delete("dawarich/user_#{user_id}_cities_visited")
|
|
end
|
|
|
|
def invalidate_points_geocoded_stats
|
|
Rails.cache.delete("dawarich/user_#{user_id}_points_geocoded_stats")
|
|
end
|
|
|
|
def invalidate_total_distance
|
|
Rails.cache.delete("dawarich/user_#{user_id}_total_distance")
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :user_id
|
|
end
|