From f2213006f1e8e56b32645df06cd75c7d51aa1a2e Mon Sep 17 00:00:00 2001 From: quangtv-ntq Date: Thu, 10 Jan 2019 14:41:39 +0700 Subject: [PATCH 1/4] update api docoments --- document/api-docs.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/document/api-docs.yml b/document/api-docs.yml index d612fed..4b67e90 100644 --- a/document/api-docs.yml +++ b/document/api-docs.yml @@ -211,9 +211,6 @@ components: PullSetting: type: object properties: - pullUrl: - type: string - example: 'https://demo.com' allowedOrigins: type: array items: @@ -598,6 +595,15 @@ paths: provider: type: string example: cloudfront + domain: + type: string + protocol: + type: string + required: + - domain + - name + - provider + - protocol responses: '201': description: CREATED From dc5a608b9bf8c7cc9b6424a53e103327af9a3cfe Mon Sep 17 00:00:00 2001 From: quangtv-ntq Date: Thu, 10 Jan 2019 14:58:39 +0700 Subject: [PATCH 2/4] update project info, add domain & protocol. update create project api. --- src/functions/project/create.js | 2 ++ src/models/project.js | 8 ++++++++ src/services/project/project.js | 12 ++++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/functions/project/create.js b/src/functions/project/create.js index 80de432..490bde2 100644 --- a/src/functions/project/create.js +++ b/src/functions/project/create.js @@ -8,6 +8,8 @@ import config from 'infrastructure/config' const SCHEMA = joi.object().keys({ name: joi.string().max(50).trim().required(), + domain: joi.string().required(), + protocol: joi.string().required(), provider: joi.any().valid('cloudfront').required() }) diff --git a/src/models/project.js b/src/models/project.js index 4163d3c..384c057 100644 --- a/src/models/project.js +++ b/src/models/project.js @@ -1,6 +1,14 @@ import mongoose, { register } from 'infrastructure/mongoose' const schema = mongoose.Schema({ + domain: { + type: String, + required: true + }, + protocol: { + type: String, + required: true + }, name: { type: String, required: true diff --git a/src/services/project/project.js b/src/services/project/project.js index a0220d1..1c3bc0d 100644 --- a/src/services/project/project.js +++ b/src/services/project/project.js @@ -32,14 +32,22 @@ const generateUniqueIdentifier = async (retry) => { return await generateUniqueIdentifier(retry - 1) } -const create = async ({ name, provider, owner }) => { +const create = async ({ + domain, + owner, + name, + protocol, + provider +}) => { const identifier = await generateUniqueIdentifier(10) const Project = await createProjectModel() const project = await new Project({ - name, + domain, identifier, + name, + protocol, status: 'INITIALIZING' }).save() From 0551c5993a93fcf286006b49195f0bc3d4269aba Mon Sep 17 00:00:00 2001 From: quangtv-ntq Date: Thu, 10 Jan 2019 16:56:24 +0700 Subject: [PATCH 3/4] update project api check valid domain & protocol. get project now return domain & protocol. --- document/api-docs.yml | 4 ++++ src/functions/project/create.js | 7 +++++-- src/transformers/project.js | 4 +++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/document/api-docs.yml b/document/api-docs.yml index 4b67e90..2dfe27f 100644 --- a/document/api-docs.yml +++ b/document/api-docs.yml @@ -198,6 +198,10 @@ components: createdAt: type: string format: date-time + domain: + type: string + protocol: + type: boolean Preset: type: object properties: diff --git a/src/functions/project/create.js b/src/functions/project/create.js index 490bde2..b34afea 100644 --- a/src/functions/project/create.js +++ b/src/functions/project/create.js @@ -6,10 +6,13 @@ import projectService from 'services/project' import authorize from 'middlewares/authorize' import config from 'infrastructure/config' +//use url regex on this site: https://regexr.com/3au3g +const DOMAIN_REGEX = /^(?:[a-z\d](?:[a-z\d-]{0,63}[a-z\d])?\.)+[a-z\d][a-z\d-]{0,63}[a-z\d]$/i + const SCHEMA = joi.object().keys({ name: joi.string().max(50).trim().required(), - domain: joi.string().required(), - protocol: joi.string().required(), + domain: joi.string().required().regex(DOMAIN_REGEX), + protocol: joi.string().valid([ 'http', 'https' ]).required(), provider: joi.any().valid('cloudfront').required() }) diff --git a/src/transformers/project.js b/src/transformers/project.js index d1a0f04..ebe7d35 100644 --- a/src/transformers/project.js +++ b/src/transformers/project.js @@ -4,5 +4,7 @@ export default (project) => ({ status: project.status, isActive: project.isActive, isDeleted: project.isDeleted, - createdAt: project.createdAt + createdAt: project.createdAt, + domain: project.domain, + protocol: project.protocol }) From f2875f650253e6b2e034149013cf0af988ae1d6e Mon Sep 17 00:00:00 2001 From: quangtv-ntq Date: Wed, 16 Jan 2019 15:32:37 +0700 Subject: [PATCH 4/4] remove pull Url from pull setting --- src/functions/project/pull-setting/replace.js | 1 - src/models/pull-setting.js | 3 --- src/transformers/pull-setting.js | 1 - 3 files changed, 5 deletions(-) diff --git a/src/functions/project/pull-setting/replace.js b/src/functions/project/pull-setting/replace.js index c1f02cb..10e2671 100644 --- a/src/functions/project/pull-setting/replace.js +++ b/src/functions/project/pull-setting/replace.js @@ -7,7 +7,6 @@ import authorize from 'middlewares/authorize' import config from 'infrastructure/config' const SCHEMA = joi.object().keys({ - pullUrl: joi.string().allow('').trim(), allowedOrigins: joi.array().items( joi.string().trim() ), diff --git a/src/models/pull-setting.js b/src/models/pull-setting.js index 9650b45..a6642eb 100644 --- a/src/models/pull-setting.js +++ b/src/models/pull-setting.js @@ -10,9 +10,6 @@ const schema = mongoose.Schema({ name: String, value: String } ], - pullUrl: { - type: String - }, allowedOrigins: [ String ] }, { collection: 'pullSettings', diff --git a/src/transformers/pull-setting.js b/src/transformers/pull-setting.js index 43f5a4f..8e64be1 100644 --- a/src/transformers/pull-setting.js +++ b/src/transformers/pull-setting.js @@ -1,5 +1,4 @@ export default (pullSetting) => ({ - pullUrl: pullSetting.pullUrl, allowedOrigins: pullSetting.allowedOrigins, headers: pullSetting.headers.map( (header) => ({