From 51a9cb55571dd4789cd9d22871473e7bc665cfa9 Mon Sep 17 00:00:00 2001 From: Sebastian Noe Date: Mon, 11 May 2026 17:31:49 +0200 Subject: [PATCH] feat: add revision support to template API endpoints Add optional 'revision' parameter to PUT /api/templates/:id and PUT /api/templates/:id/documents. When present, creates a template version snapshot (same mechanism as the UI editor's Save button). This enables API consumers (e.g., deploy-docuseal.py) to create revision history entries when updating templates programmatically. Usage: include "revision": true in the request body. Omit the parameter to skip version creation (backwards compatible). --- app/controllers/api/templates_controller.rb | 2 ++ app/controllers/api/templates_documents_controller.rb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/controllers/api/templates_controller.rb b/app/controllers/api/templates_controller.rb index 87b756ea..1b968ff6 100644 --- a/app/controllers/api/templates_controller.rb +++ b/app/controllers/api/templates_controller.rb @@ -71,6 +71,8 @@ module Api WebhookUrls.enqueue_events(@template, 'template.updated') WebhookUrls.enqueue_events(@template, 'template.archived') if archived == true + TemplateVersions.find_or_create_for(@template, author: current_user) if params[:revision].present? + render json: @template.as_json(only: %i[id updated_at]) end diff --git a/app/controllers/api/templates_documents_controller.rb b/app/controllers/api/templates_documents_controller.rb index bca73fa2..3743815c 100644 --- a/app/controllers/api/templates_documents_controller.rb +++ b/app/controllers/api/templates_documents_controller.rb @@ -22,6 +22,8 @@ module Api SearchEntries.enqueue_reindex(@template) WebhookUrls.enqueue_events(@template, 'template.updated') + TemplateVersions.find_or_create_for(@template, author: current_user) if params[:revision].present? + render json: Templates::SerializeForApi.call(@template) end