59484da4dc
• Updated: - FetchGroupsService to fetch featured groups that are not private and visible
29 lines
724 B
Ruby
29 lines
724 B
Ruby
# frozen_string_literal: true
|
|
|
|
class FetchGroupsService < BaseService
|
|
def call(type)
|
|
|
|
if type == "featured"
|
|
body = Redis.current.with do |conn|
|
|
conn.get("groups:featuredgroups")
|
|
end
|
|
|
|
if body.nil? || !body || body.empty?
|
|
@groupIds = Group.where(is_featured: true, is_archived: false, is_private: false, is_visible: true).limit(150).all.pluck(:id)
|
|
|
|
Redis.current.with do |conn|
|
|
conn.set("groups:featuredgroups", @groupIds.join(","))
|
|
end
|
|
Redis.current.with do |conn|
|
|
conn.expire("groups:featuredgroups", 6.hours.seconds)
|
|
end
|
|
|
|
@groupIds
|
|
else
|
|
body.split(",")
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|