class Public::Api::V1::CsatSurveyController < PublicController before_action :set_conversation before_action :set_message def show; end def update render json: { error: 'You cannot update the CSAT survey after 14 days' }, status: :unprocessable_entity and return if check_csat_locked @message.update!(message_update_params[:message]) end private def set_conversation return if params[:id].blank? @conversation = Conversation.find_by!(uuid: params[:id]) end def set_message @message = @conversation.messages.find_by!(content_type: 'input_csat') end def message_update_params params.permit(message: [{ submitted_values: [:name, :title, :value, { csat_survey_response: [:feedback_message, :rating] }] }]) end def check_csat_locked (Time.zone.now.to_date - @message.created_at.to_date).to_i > 14 end end