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 9e84bf2c..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(), + 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 985c7c82..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(), + address: Joi.string().regex(REGEX.URL), })).optional().allow(null), type: Joi.any().valid(_.values(PROJECT_TYPE)), details: Joi.any(),