gab-social/app/services/fetch_groups_service.rb

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