Fix destructive update behavior in n8n cookie operations
Avoid clearing existing values when optional fields are left at their defaults: only send privacyPolicyUrl/maxAgeSeconds when truthy, filter empty entries from gcmConsentTypes, and constrain consentExpiryDays to positive integers on create. Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
@@ -82,6 +82,9 @@ export const description: INodeProperties[] = [
|
||||
operation: ['create'],
|
||||
},
|
||||
},
|
||||
typeOptions: {
|
||||
minValue: 1,
|
||||
},
|
||||
default: 365,
|
||||
description: 'Number of days before consent expires',
|
||||
required: true,
|
||||
|
||||
@@ -159,9 +159,7 @@ export async function execute(
|
||||
|
||||
const input: Record<string, unknown> = { cookieBannerId };
|
||||
if (name) input.name = name;
|
||||
if (privacyPolicyUrl !== undefined) {
|
||||
input.privacyPolicyUrl = privacyPolicyUrl === '' ? null : privacyPolicyUrl;
|
||||
}
|
||||
if (privacyPolicyUrl) input.privacyPolicyUrl = privacyPolicyUrl;
|
||||
if (cookiePolicyUrl) input.cookiePolicyUrl = cookiePolicyUrl;
|
||||
if (consentExpiryDays) input.consentExpiryDays = consentExpiryDays;
|
||||
if (consentMode) input.consentMode = consentMode;
|
||||
|
||||
@@ -150,7 +150,10 @@ export async function execute(
|
||||
if (slug) input.slug = slug;
|
||||
if (categoryDescription) input.description = categoryDescription;
|
||||
if (gcmConsentTypes) {
|
||||
input.gcmConsentTypes = gcmConsentTypes.split(',').map((s) => s.trim());
|
||||
input.gcmConsentTypes = gcmConsentTypes
|
||||
.split(',')
|
||||
.map((s) => s.trim())
|
||||
.filter((s) => s.length > 0);
|
||||
}
|
||||
if (posthogConsent) input.posthogConsent = posthogConsent === 'true';
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ export const description: INodeProperties[] = [
|
||||
},
|
||||
},
|
||||
default: 0,
|
||||
description: 'The maximum age of the cookie in seconds (0 to clear)',
|
||||
description: 'The maximum age of the cookie in seconds (leave at 0 to keep unchanged)',
|
||||
},
|
||||
{
|
||||
displayName: 'Excluded',
|
||||
@@ -133,9 +133,7 @@ export async function execute(
|
||||
|
||||
const input: Record<string, unknown> = { cookiePatternId };
|
||||
if (displayName) input.displayName = displayName;
|
||||
if (maxAgeSeconds !== undefined) {
|
||||
input.maxAgeSeconds = maxAgeSeconds === 0 ? null : maxAgeSeconds;
|
||||
}
|
||||
if (maxAgeSeconds > 0) input.maxAgeSeconds = maxAgeSeconds;
|
||||
if (excluded) input.excluded = excluded === 'true';
|
||||
if (patternDescription) input.description = patternDescription;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user