cre-ne-jp/log-archiver

View on GitHub
app/controllers/admin/archived_conversation_messages_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Admin::ArchivedConversationMessagesController < ApplicationController
include MessageHelper
 
before_action(:require_login)
 
def index
page_i = params[:page].to_i
page = page_i >= 1 ? page_i : 1
@messages = ArchivedConversationMessage
.page(page)
.order('timestamp DESC')
end
 
def show
@conversation_message = ArchivedConversationMessage.find(params[:id])
@browse_day = ChannelBrowse::Day.new(
channel: @conversation_message.channel, date: @conversation_message.timestamp, style: :normal
)
end
 
def create
archiver = ConversationMessageArchiver.new
 
am = archiver.archive!(archived_conversation_message_params_for_create)
if am
flash[:success] = t('views.flash.added_archived_conversation_message')
redirect_to(admin_archived_conversation_message_path(am.id))
else
render(template: 'admin/conversation_messages/edit')
end
end
 
def edit
@archived_conversation_message =
ArchivedConversationMessage.find(params[:id])
@archive_reasons = ArchiveReason.all
end
 
def update
am = ArchivedConversationMessage.find(params[:id])
 
if am.update(archived_conversation_message_params_for_update)
flash[:success] = t('views.flash.updated_archived_conversation_message')
redirect_to(admin_archived_conversation_message_path(am.id))
else
render(:edit)
end
end
 
def destroy
archiver = ConversationMessageArchiver.new
 
cm = archiver.reconstitute!(params[:id].to_i)
if cm
flash[:success] = t('views.flash.deleted_archived_conversation_message')
redirect_to(admin_conversation_message_path(cm))
else
redirect_to(admin_archived_conversation_message_path(params[:id]))
end
end
 
private
 
def archived_conversation_message_params_for_create
params.
require(:archived_conversation_message).
permit(:archive_reason_id, :old_id)
end
 
def archived_conversation_message_params_for_update
params.
require(:archived_conversation_message).
permit(:archive_reason_id)
end
end