From 7afbc8df3654c3d585eeb443b3d620ff8332a44f Mon Sep 17 00:00:00 2001 From: chq-matteo Date: Sat, 6 Jan 2018 21:58:55 +0100 Subject: [PATCH 1/2] Add same regex as client to address validation --- src/routes/projects/create.js | 2 +- src/routes/projects/update.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/projects/create.js b/src/routes/projects/create.js index 9e84bf2c..3e194fa4 100644 --- a/src/routes/projects/create.js +++ b/src/routes/projects/create.js @@ -34,7 +34,7 @@ const createProjectValdiations = { }).allow(null), bookmarks: Joi.array().items(Joi.object().keys({ title: Joi.string(), - address: Joi.string(), + address: Joi.string().regex(/^(http(s?):\/\/)?(www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,15})+(\:[0-9]{2,5})?(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/), })).optional().allow(null), estimatedPrice: Joi.number().precision(2).positive().optional() .allow(null), diff --git a/src/routes/projects/update.js b/src/routes/projects/update.js index 985c7c82..6c1f2fb0 100644 --- a/src/routes/projects/update.js +++ b/src/routes/projects/update.js @@ -57,7 +57,7 @@ const updateProjectValdiations = { }).allow(null), bookmarks: Joi.array().items(Joi.object().keys({ title: Joi.string(), - address: Joi.string(), + address: Joi.string().regex(/^(http(s?):\/\/)?(www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,15})+(\:[0-9]{2,5})?(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/), })).optional().allow(null), type: Joi.any().valid(_.values(PROJECT_TYPE)), details: Joi.any(), From e727fd31d528f8895d37c3376188eb155403842f Mon Sep 17 00:00:00 2001 From: chq-matteo Date: Sat, 6 Jan 2018 23:40:10 +0100 Subject: [PATCH 2/2] Move address regex to constants.js --- src/constants.js | 4 ++++ src/routes/projects/create.js | 4 ++-- src/routes/projects/update.js | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/constants.js b/src/constants.js index 3e5a14c6..54eef261 100644 --- a/src/constants.js +++ b/src/constants.js @@ -71,3 +71,7 @@ export const BUS_API_EVENT = { PROJECT_FILE_UPLOADED: 'connect.project.fileUploaded', PROJECT_SPECIFICATION_MODIFIED: 'connect.project.specificationModified', }; + +export const REGEX = { + URL: /^(http(s?):\/\/)?(www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,15})+(\:[0-9]{2,5})?(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/, +}; \ No newline at end of file diff --git a/src/routes/projects/create.js b/src/routes/projects/create.js index 3e194fa4..684ef859 100644 --- a/src/routes/projects/create.js +++ b/src/routes/projects/create.js @@ -5,7 +5,7 @@ import _ from 'lodash'; import Joi from 'joi'; import models from '../../models'; -import { PROJECT_TYPE, PROJECT_MEMBER_ROLE, PROJECT_STATUS, USER_ROLE, EVENT } from '../../constants'; +import { PROJECT_TYPE, PROJECT_MEMBER_ROLE, PROJECT_STATUS, USER_ROLE, EVENT, REGEX } from '../../constants'; import util from '../../util'; import directProject from '../../services/directProject'; @@ -34,7 +34,7 @@ const createProjectValdiations = { }).allow(null), bookmarks: Joi.array().items(Joi.object().keys({ title: Joi.string(), - address: Joi.string().regex(/^(http(s?):\/\/)?(www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,15})+(\:[0-9]{2,5})?(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/), + address: Joi.string().regex(REGEX.URL), })).optional().allow(null), estimatedPrice: Joi.number().precision(2).positive().optional() .allow(null), diff --git a/src/routes/projects/update.js b/src/routes/projects/update.js index 6c1f2fb0..b02fc55d 100644 --- a/src/routes/projects/update.js +++ b/src/routes/projects/update.js @@ -11,6 +11,7 @@ import { PROJECT_MEMBER_ROLE, EVENT, USER_ROLE, + REGEX, } from '../../constants'; import util from '../../util'; import directProject from '../../services/directProject'; @@ -57,7 +58,7 @@ const updateProjectValdiations = { }).allow(null), bookmarks: Joi.array().items(Joi.object().keys({ title: Joi.string(), - address: Joi.string().regex(/^(http(s?):\/\/)?(www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,15})+(\:[0-9]{2,5})?(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/), + address: Joi.string().regex(REGEX.URL), })).optional().allow(null), type: Joi.any().valid(_.values(PROJECT_TYPE)), details: Joi.any(),