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
|