From 28f47e10937de2d1acc8758e17dba6e11cbec4d7 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Tue, 9 Jun 2026 19:34:58 +0300 Subject: [PATCH] handle template archived --- app/controllers/api/submissions_controller.rb | 6 ++++++ app/controllers/submissions_controller.rb | 2 ++ lib/mcp/tools/send_documents.rb | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/app/controllers/api/submissions_controller.rb b/app/controllers/api/submissions_controller.rb index b8ffa5ff..edd769df 100644 --- a/app/controllers/api/submissions_controller.rb +++ b/app/controllers/api/submissions_controller.rb @@ -54,6 +54,12 @@ module Api return render json: { error: 'Template not found' }, status: :unprocessable_content if @template.nil? + if @template.archived_at? + Rollbar.warning("Archived template submission: #{@template.id}") if defined?(Rollbar) + + return render json: { error: 'Template has been archived' }, status: :unprocessable_content + end + if @template.fields.blank? Rollbar.warning("Template does not contain fields: #{@template.id}") if defined?(Rollbar) diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 2e1bba67..fd598309 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -38,6 +38,8 @@ class SubmissionsController < ApplicationController end def create + return redirect_to template_path(@template), alert: I18n.t('template_has_been_archived') if @template.archived_at? + save_template_message(@template, params) if params[:save_message] == '1' [params.delete(:subject), params.delete(:body)] if params[:is_custom_message] != '1' diff --git a/lib/mcp/tools/send_documents.rb b/lib/mcp/tools/send_documents.rb index dff142cd..011224be 100644 --- a/lib/mcp/tools/send_documents.rb +++ b/lib/mcp/tools/send_documents.rb @@ -75,6 +75,10 @@ module Mcp return { content: [{ type: 'text', text: 'Template not found' }], isError: true } unless template + if template.archived_at? + return { content: [{ type: 'text', text: 'Template has been archived' }], isError: true } + end + current_ability.authorize!(:create, Submission.new(template:, account_id: current_user.account_id)) return { content: [{ type: 'text', text: 'Template has no fields' }], isError: true } if template.fields.blank?