2022-12-06 19:37:33 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
require 'redis'
|
|
|
|
|
2022-12-07 11:51:25 +01:00
|
|
|
class ActivityLogSubscriber
|
2022-12-06 19:37:33 +01:00
|
|
|
def start
|
2023-01-09 21:46:58 +01:00
|
|
|
redis = RedisConfiguration.new.connection
|
2022-12-06 19:37:33 +01:00
|
|
|
|
|
|
|
redis.subscribe('activity_log') do |on|
|
|
|
|
on.message do |channel, message|
|
2023-07-03 19:56:10 +02:00
|
|
|
begin
|
|
|
|
event = ActivityLogEvent.from_json_string(message)
|
2022-12-06 19:37:33 +01:00
|
|
|
|
2023-07-03 19:56:10 +02:00
|
|
|
ActivityLogAudienceHelper.audience(event)
|
|
|
|
.each { |username| ActivityLogger.log(username, event) }
|
|
|
|
rescue => e
|
|
|
|
Rails.logger.error (["Error parsing #{message}. #{e.class}: #{e.message}"]+e.backtrace).join("\n")
|
|
|
|
end
|
2022-12-06 19:37:33 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|