diff --git a/data/survey_mappings.db-shm b/data/survey_mappings.db-shm index fe9ac28..c6e8ac2 100644 Binary files a/data/survey_mappings.db-shm and b/data/survey_mappings.db-shm differ diff --git a/data/survey_mappings.db-wal b/data/survey_mappings.db-wal index e69de29..56a87e5 100644 Binary files a/data/survey_mappings.db-wal and b/data/survey_mappings.db-wal differ diff --git a/src/routes/surveys.js b/src/routes/surveys.js index f50a37d..accbfa5 100644 --- a/src/routes/surveys.js +++ b/src/routes/surveys.js @@ -13,11 +13,16 @@ router.get("/:root/:survey", (req, res) => { `Found surveyId: ${surveyId}, environmentId: ${environmentId}, type: ${type}` ); - // Redirect link surveys to Formbricks + // Redirect link surveys to Formbricks (via intermediate page for OG tags) if (type === "link") { const redirectUrl = `${process.env.FORMBRICKS_SDK_URL}/s/${surveyId}`; - console.log(`Redirecting to: ${redirectUrl}`); - return res.redirect(redirectUrl); + console.log(`Rendering redirect page for: ${redirectUrl}`); + return res.render("redirect", { + title: "Vanity | formbricks", + redirectUrl: redirectUrl, + currentUrl: `${process.env.BASE_DOMAIN}/${root}/${survey}`, + baseDomain: process.env.BASE_DOMAIN, + }); } // Embed app surveys @@ -26,6 +31,7 @@ router.get("/:root/:survey", (req, res) => { surveyId: surveyId, formbricksSdkUrl: process.env.FORMBRICKS_SDK_URL, formbricksEnvId: environmentId, + baseDomain: process.env.BASE_DOMAIN, }); } else { console.log("Survey not found"); diff --git a/src/server.js b/src/server.js index 748fa16..4e7fb85 100644 --- a/src/server.js +++ b/src/server.js @@ -15,6 +15,7 @@ app.set("views", path.join(__dirname, "views")); // Middleware app.use(express.json()); app.use(express.urlencoded({ extended: true })); +app.use("/assets", express.static(path.join(__dirname, "../assets"))); // Health check endpoint app.get("/health", (req, res) => { diff --git a/src/services/formbricks.js b/src/services/formbricks.js index 2dbafe0..62cabe3 100644 --- a/src/services/formbricks.js +++ b/src/services/formbricks.js @@ -58,16 +58,23 @@ async function fetchSurveysFromAPI() { } try { - const response = await axios.get( - `${process.env.FORMBRICKS_SDK_URL}/api/v1/management/surveys`, - { - headers: { - "x-api-key": process.env.FORMBRICKS_API_KEY, - }, - timeout: 15000, // 15 seconds timeout - } + const url = `${process.env.FORMBRICKS_SDK_URL}/api/v1/management/surveys`; + console.log(`[DEBUG] Fetching surveys from: ${url}`); + console.log( + `[DEBUG] API Key starts with: ${ + process.env.FORMBRICKS_API_KEY + ? process.env.FORMBRICKS_API_KEY.substring(0, 4) + : "undefined" + }` ); + const response = await axios.get(url, { + headers: { + "x-api-key": process.env.FORMBRICKS_API_KEY, + }, + timeout: 15000, // 15 seconds timeout + }); + return Array.isArray(response.data?.data) ? response.data.data : []; } catch (error) { console.error( diff --git a/src/views/redirect.ejs b/src/views/redirect.ejs new file mode 100644 index 0000000..699b527 --- /dev/null +++ b/src/views/redirect.ejs @@ -0,0 +1,43 @@ + + + + + + <%= title %> + + + + + + + + + + + + + + + + + + + + +

Redirecting to survey...

+ + + diff --git a/src/views/survey.ejs b/src/views/survey.ejs index 7e007db..990f11a 100644 --- a/src/views/survey.ejs +++ b/src/views/survey.ejs @@ -4,6 +4,18 @@ <%= title %> + + + + + + + + + + + +