From 005f34a51738d5b5085a2f7e617f0d4fb33ece2c Mon Sep 17 00:00:00 2001
From: Liam Morland <lkmorlan@uwaterloo.ca>
Date: Fri, 1 Apr 2022 13:59:58 -0400
Subject: [PATCH] Issue #3124168: Allow longer values for pdf_key

---
 fillpdf.install                 | 27 +++++++++++++++++++++++++++
 src/Entity/FillPdfFormField.php |  2 +-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/fillpdf.install b/fillpdf.install
index 9ac2ada..6b710d2 100644
--- a/fillpdf.install
+++ b/fillpdf.install
@@ -278,3 +278,30 @@ function fillpdf_update_8111() {
   $edum->installFieldStorageDefinition('owner_password', 'fillpdf_form', 'fillpdf_form', $owner_password);
   $edum->installFieldStorageDefinition('user_password', 'fillpdf_form', 'fillpdf_form', $user_password);
 }
+
+/**
+ * Increase maximum length for pdf_key.
+ */
+function fillpdf_update_9501() {
+  $db = \Drupal::database();
+
+  $transaction = $db->startTransaction();
+
+  // Update field storage definition.
+  $edum = \Drupal::entityDefinitionUpdateManager();
+  $field_storage_definition = $edum->getFieldStorageDefinition('pdf_key', 'fillpdf_form_field');
+  $field_storage_definition->setSetting('type', 'string_long');
+  $edum->updateFieldStorageDefinition($field_storage_definition);
+
+  // Update database schema.
+  $spec = [
+    'type' => 'text',
+    'size' => 'big',
+  ];
+  $db
+    ->schema()
+    ->changeField('fillpdf_fields', 'pdf_key', 'pdf_key', $spec);
+
+  // Commit transaction.
+  unset($transaction);
+}
diff --git a/src/Entity/FillPdfFormField.php b/src/Entity/FillPdfFormField.php
index 18fa69c..a8f326b 100644
--- a/src/Entity/FillPdfFormField.php
+++ b/src/Entity/FillPdfFormField.php
@@ -56,7 +56,7 @@ class FillPdfFormField extends ContentEntityBase implements FillPdfFormFieldInte
       ->setDescription(t('The UUID of the FillPdfFormField entity.'))
       ->setReadOnly(TRUE);
 
-    $fields['pdf_key'] = BaseFieldDefinition::create('string')
+    $fields['pdf_key'] = BaseFieldDefinition::create('string_long')
       ->setLabel(t('PDF Key'))
       ->setDescription(t('The name of the field in the PDF form.'));
 
-- 
GitLab