From cbe83226e9c15a0e86d4a72a666c5830571b25f8 Mon Sep 17 00:00:00 2001 From: Imad Moussa Date: Mon, 9 Jan 2023 14:06:56 +0000 Subject: [PATCH 1/2] Set the target lenght as env variable --- .docker.env | 1 + .example.env | 2 +- server/env.ts | 1 + server/handlers/validators.ts | 4 ++-- server/models/link.ts | 3 ++- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.docker.env b/.docker.env index 00c31856..e2fd45ac 100644 --- a/.docker.env +++ b/.docker.env @@ -9,6 +9,7 @@ DEFAULT_DOMAIN=localhost:3000 # Generated link length LINK_LENGTH=6 +TARGET_LENGTH=50000 # Postgres database credential details DB_HOST=postgres diff --git a/.example.env b/.example.env index f739887d..8857fdd7 100644 --- a/.example.env +++ b/.example.env @@ -9,7 +9,7 @@ DEFAULT_DOMAIN=localhost:3000 # Generated link length LINK_LENGTH=6 - +TARGET_LENGTH=5000 # Postgres database credential details DB_HOST=localhost DB_PORT=5432 diff --git a/server/env.ts b/server/env.ts index 075178c0..ecad5069 100644 --- a/server/env.ts +++ b/server/env.ts @@ -8,6 +8,7 @@ const env = cleanEnv(process.env, { SITE_NAME: str({ example: "Kutt" }), DEFAULT_DOMAIN: str({ example: "kutt.it" }), LINK_LENGTH: num({ default: 6 }), + TARGET_LENGTH: num({ default: 2040 }), DB_HOST: str({ default: "localhost" }), DB_PORT: num({ default: 5432 }), DB_NAME: str({ default: "postgres" }), diff --git a/server/handlers/validators.ts b/server/handlers/validators.ts index 89540212..9f71dbd7 100644 --- a/server/handlers/validators.ts +++ b/server/handlers/validators.ts @@ -46,8 +46,8 @@ export const createLink = [ .withMessage("Target is missing.") .isString() .trim() - .isLength({ min: 1, max: 2040 }) - .withMessage("Maximum URL length is 2040.") + .isLength({ min: 1, max: env.TARGET_LENGTH }) + .withMessage(`Maximum URL length is ${env.TARGET_LENGTH}.`) .customSanitizer(addProtocol) .custom( value => diff --git a/server/models/link.ts b/server/models/link.ts index 8d8e2f38..4e135865 100644 --- a/server/models/link.ts +++ b/server/models/link.ts @@ -1,4 +1,5 @@ import { Knex } from "knex"; +import env from "../env"; export async function createLinkTable(knex: Knex) { const hasTable = await knex.schema.hasTable("links"); @@ -24,7 +25,7 @@ export async function createLinkTable(knex: Knex) { .inTable("domains"); table.string("password"); table.dateTime("expire_in"); - table.string("target", 2040).notNullable(); + table.string("target", env.TARGET_LENGTH).notNullable(); table .integer("user_id") .references("id") From f44005330e22a173e2c18f2607523b2987db396c Mon Sep 17 00:00:00 2001 From: Imad Moussa Date: Tue, 10 Jan 2023 11:58:14 +0000 Subject: [PATCH 2/2] Update the name of the env Target length --- .docker.env | 2 +- .example.env | 2 +- server/env.ts | 2 +- server/handlers/validators.ts | 4 ++-- server/models/link.ts | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.docker.env b/.docker.env index e2fd45ac..d3e53d51 100644 --- a/.docker.env +++ b/.docker.env @@ -9,7 +9,7 @@ DEFAULT_DOMAIN=localhost:3000 # Generated link length LINK_LENGTH=6 -TARGET_LENGTH=50000 +MAX_TARGET_LENGTH=2040 # Postgres database credential details DB_HOST=postgres diff --git a/.example.env b/.example.env index 8857fdd7..2a4f2ec3 100644 --- a/.example.env +++ b/.example.env @@ -9,7 +9,7 @@ DEFAULT_DOMAIN=localhost:3000 # Generated link length LINK_LENGTH=6 -TARGET_LENGTH=5000 +MAX_TARGET_LENGTH=2040 # Postgres database credential details DB_HOST=localhost DB_PORT=5432 diff --git a/server/env.ts b/server/env.ts index ecad5069..042db2bd 100644 --- a/server/env.ts +++ b/server/env.ts @@ -8,7 +8,7 @@ const env = cleanEnv(process.env, { SITE_NAME: str({ example: "Kutt" }), DEFAULT_DOMAIN: str({ example: "kutt.it" }), LINK_LENGTH: num({ default: 6 }), - TARGET_LENGTH: num({ default: 2040 }), + MAX_TARGET_LENGTH: num({ default: 2040 }), DB_HOST: str({ default: "localhost" }), DB_PORT: num({ default: 5432 }), DB_NAME: str({ default: "postgres" }), diff --git a/server/handlers/validators.ts b/server/handlers/validators.ts index 9f71dbd7..dd7905b4 100644 --- a/server/handlers/validators.ts +++ b/server/handlers/validators.ts @@ -46,8 +46,8 @@ export const createLink = [ .withMessage("Target is missing.") .isString() .trim() - .isLength({ min: 1, max: env.TARGET_LENGTH }) - .withMessage(`Maximum URL length is ${env.TARGET_LENGTH}.`) + .isLength({ min: 1, max: env.MAX_TARGET_LENGTH }) + .withMessage(`Maximum URL length is ${env.MAX_TARGET_LENGTH}.`) .customSanitizer(addProtocol) .custom( value => diff --git a/server/models/link.ts b/server/models/link.ts index 4e135865..f85d98b9 100644 --- a/server/models/link.ts +++ b/server/models/link.ts @@ -25,7 +25,7 @@ export async function createLinkTable(knex: Knex) { .inTable("domains"); table.string("password"); table.dateTime("expire_in"); - table.string("target", env.TARGET_LENGTH).notNullable(); + table.string("target", env.MAX_TARGET_LENGTH).notNullable(); table .integer("user_id") .references("id")