From c6ff74f166fe75d78f11ddda9010efa7cab4efbd Mon Sep 17 00:00:00 2001 From: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Date: Sat, 9 Mar 2024 12:17:37 +0530 Subject: [PATCH] fix: added sanitizeString util helper (#2209) --- packages/lib/response/util.ts | 5 +++-- packages/lib/strings.ts | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/lib/response/util.ts b/packages/lib/response/util.ts index 3c139d4f70..138b978253 100644 --- a/packages/lib/response/util.ts +++ b/packages/lib/response/util.ts @@ -18,6 +18,7 @@ import { } from "@formbricks/types/responses"; import { TSurvey, TSurveyQuestionType } from "@formbricks/types/surveys"; +import { sanitizeString } from "../strings"; import { getTodaysDateTimeFormatted } from "../time"; import { evaluateCondition } from "../utils/evaluateLogic"; @@ -307,8 +308,8 @@ export const buildWhereClause = (filterCriteria?: TResponseFilterCriteria) => { }; export const getResponsesFileName = (surveyName: string, extension: string) => { - // replacing / with : to avoid url issues - surveyName = surveyName.replaceAll("/", ":"); + surveyName = sanitizeString(surveyName); + const formattedDateString = getTodaysDateTimeFormatted("-"); return `export-${surveyName.split(" ").join("-")}-${formattedDateString}.${extension}`.toLocaleLowerCase(); }; diff --git a/packages/lib/strings.ts b/packages/lib/strings.ts index a32eab2101..b9f35a70b5 100644 --- a/packages/lib/strings.ts +++ b/packages/lib/strings.ts @@ -24,3 +24,8 @@ export const truncateMiddle = (str: string, length: number) => { } return str; }; + +// write a function that takes a string and removes all characters that could cause issues with the url and truncates it to the specified length +export const sanitizeString = (str: string, delimiter: string = "_", length: number = 255) => { + return str.replace(/[^0-9a-zA-Z\-._]+/g, delimiter).substring(0, length); +};