# 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