From b8c93bf476d0c2e7ac37b202d0b8788567304824 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 22 Dec 2020 12:38:53 +0100 Subject: [PATCH 1/2] Implemented the getter for loading the postalcodelocale from env ref #43 --- src/config.ts | 14 +++++++++++++- src/models/actions/CreateAddress.ts | 3 ++- src/models/entities/Address.ts | 4 ++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/config.ts b/src/config.ts index c530ec1..8729b6e 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,10 +1,13 @@ import { config as configDotenv } from 'dotenv'; +import ValidatorJS from 'validator'; + configDotenv(); export const config = { internal_port: parseInt(process.env.APP_PORT) || 4010, development: process.env.NODE_ENV === "production", jwt_secret: process.env.JWT_SECRET || "secretjwtsecret", - phone_validation_countrycode: process.env.PHONE_COUNTRYCODE || "ZZ" + phone_validation_countrycode: process.env.PHONE_COUNTRYCODE || "ZZ", + postalcode_validation_countrycode: getPostalCodeLocale() } let errors = 0 if (typeof config.internal_port !== "number") { @@ -19,4 +22,13 @@ if (config.phone_validation_countrycode.length !== 2) { if (typeof config.development !== "boolean") { errors++ } +function getPostalCodeLocale(): any { + try { + const stringArray: String[] = ValidatorJS.isPostalCodeLocales; + let index = stringArray.indexOf(process.env.POSTALCODE_COUNTRYCODE); + return ValidatorJS.isPostalCodeLocales[index]; + } catch (error) { + return null; + } +} export let e = errors \ No newline at end of file diff --git a/src/models/actions/CreateAddress.ts b/src/models/actions/CreateAddress.ts index e912ba2..66ee9bd 100644 --- a/src/models/actions/CreateAddress.ts +++ b/src/models/actions/CreateAddress.ts @@ -1,4 +1,5 @@ import { IsNotEmpty, IsOptional, IsPostalCode, IsString } from 'class-validator'; +import { config } from '../../config'; import { Address } from '../entities/Address'; /** @@ -35,7 +36,7 @@ export class CreateAddress { */ @IsString() @IsNotEmpty() - @IsPostalCode("DE") + @IsPostalCode(config.postalcode_validation_countrycode) postalcode: string; /** diff --git a/src/models/entities/Address.ts b/src/models/entities/Address.ts index 54c490e..99d69ce 100644 --- a/src/models/entities/Address.ts +++ b/src/models/entities/Address.ts @@ -6,6 +6,7 @@ import { IsString } from "class-validator"; import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from "typeorm"; +import { config } from '../../config'; import { Participant } from "./Participant"; import { RunnerOrganisation } from "./RunnerOrganisation"; @@ -52,12 +53,11 @@ export class Address { /** * The address's postal code. * This will get checked against the postal code syntax for the configured country. - * TODO: Implement the config option. */ @Column() @IsString() @IsNotEmpty() - @IsPostalCode("DE") + @IsPostalCode(config.postalcode_validation_countrycode) postalcode: string; /** From f3008979f30b3a4d5de87ad415b06b813f8bd1a2 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 22 Dec 2020 12:40:11 +0100 Subject: [PATCH 2/2] Added the POSTALCODE_COUNTRYCODE to the sample and ci env files ref #43 --- .env.ci | 3 ++- .env.example | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.env.ci b/.env.ci index d96e21a..00bfa4a 100644 --- a/.env.ci +++ b/.env.ci @@ -5,4 +5,5 @@ DB_PORT=unused DB_USER=unused DB_PASSWORD=bla DB_NAME=./test.sqlite -NODE_ENV=dev \ No newline at end of file +NODE_ENV=dev +POSTALCODE_COUNTRYCODE=null \ No newline at end of file diff --git a/.env.example b/.env.example index 6c41318..5595533 100644 --- a/.env.example +++ b/.env.example @@ -5,4 +5,5 @@ DB_PORT=bla DB_USER=bla DB_PASSWORD=bla DB_NAME=bla -NODE_ENV=production \ No newline at end of file +NODE_ENV=production +POSTALCODE_COUNTRYCODE=null \ No newline at end of file