32 lines
848 B
Ruby
32 lines
848 B
Ruby
# frozen_string_literal: true
|
|
|
|
module EmailControllerHelper
|
|
class ChatSummaryUnsubscriber < BaseEmailUnsubscriber
|
|
def prepare_unsubscribe_options(controller)
|
|
super(controller)
|
|
|
|
chat_email_frequencies =
|
|
UserOption.chat_email_frequencies.map do |(freq, _)|
|
|
[I18n.t("unsubscribe.chat_summary.#{freq}"), freq]
|
|
end
|
|
|
|
controller.instance_variable_set(:@chat_email_frequencies, chat_email_frequencies)
|
|
controller.instance_variable_set(
|
|
:@current_chat_email_frequency,
|
|
key_owner.user_option.chat_email_frequency,
|
|
)
|
|
end
|
|
|
|
def unsubscribe(params)
|
|
updated = super(params)
|
|
|
|
if params[:chat_email_frequency]
|
|
key_owner.user_option.update!(chat_email_frequency: params[:chat_email_frequency])
|
|
updated = true
|
|
end
|
|
|
|
updated
|
|
end
|
|
end
|
|
end
|