Skip to content

Commit 3530f46

Browse files
author
vikasrohit
authored
Merge pull request #6 from maxceem/develop
Various fixes
2 parents 79ae470 + 436b900 commit 3530f46

File tree

5 files changed

+28
-25
lines changed

5 files changed

+28
-25
lines changed

src/constants.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ const RESOURCES = {
1616
PROJECT: 'project',
1717
PROJECT_TEMPLATE: 'project.template',
1818
PROJECT_TYPE: 'project.type',
19+
PROJECT_MEMBER: 'project.member',
20+
PROJECT_MEMBER_INVITE: 'project.member.invite',
1921
ORG_CONFIG: 'project.orgConfig',
2022
FORM_VERSION: 'project.form.version',
2123
FORM_REVISION: 'project.form.revision',
@@ -25,14 +27,12 @@ const RESOURCES = {
2527
PLAN_CONFIG_REVISION: 'project.planConfig.revision',
2628
PRODUCT_TEMPLATE: 'product.template',
2729
PRODUCT_CATEGORY: 'product.category',
28-
ATTACHMENT: 'attachment',
29-
PHASE: 'phase',
30-
PROJECT_MEMBER: 'project.member',
31-
PHASE_PRODUCT: 'phase.product',
30+
PHASE: 'project.phase',
31+
PHASE_PRODUCT: 'project.phase.product',
3232
TIMELINE: 'timeline',
3333
MILESTONE: 'milestone',
3434
MILESTONE_TEMPLATE: 'milestone.template',
35-
PROJECT_MEMBER_INVITE: 'project.member.invite'
35+
ATTACHMENT: 'attachment'
3636
}
3737

3838
const TIMELINE_REFERENCES = {
@@ -56,7 +56,11 @@ const PROJECT_MEMBER_ROLE = {
5656
OBSERVER: 'observer',
5757
CUSTOMER: 'customer',
5858
COPILOT: 'copilot',
59-
ACCOUNT_MANAGER: 'account_manager'
59+
ACCOUNT_MANAGER: 'account_manager',
60+
PROGRAM_MANAGER: 'program_manager',
61+
ACCOUNT_EXECUTIVE: 'account_executive',
62+
SOLUTION_ARCHITECT: 'solution_architect',
63+
PROJECT_MANAGER: 'project_manager'
6064
}
6165

6266
const MILESTONE_TEMPLATE_REFERENCES = {

src/services/ProcessorServiceMilestoneTemplate.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,17 @@ function createSchema () {
6868
async function create (message) {
6969
// handle ES Update
7070
async function updateDocPromise (doc) {
71-
const milestoneTemplate = _.isArray(doc._source.milestoneTemplate) ? doc._source.milestoneTemplate : []
71+
const milestoneTemplates = _.isArray(doc._source.milestoneTemplates) ? doc._source.milestoneTemplates : []
7272

73-
const existingMilestoneTemplateIndex = _.findIndex(milestoneTemplate, p => p.id === message.id)// if milestone template does not exists already
73+
const existingMilestoneTemplateIndex = _.findIndex(milestoneTemplates, p => p.id === message.id)// if milestone template does not exists already
7474
if (existingMilestoneTemplateIndex === -1) {
75-
milestoneTemplate.push(message)
75+
milestoneTemplates.push(message)
7676
} else { // if milestone template already exists, ideally we should never land here, but code handles the buggy indexing
7777
// replaces the old inconsistent index where previously milestone template was not removed from the index but deleted
7878
// from the database
79-
milestoneTemplate.splice(existingMilestoneTemplateIndex, 1, message)
79+
milestoneTemplates.splice(existingMilestoneTemplateIndex, 1, message)
8080
}
81-
return _.assign(doc._source, { milestoneTemplate })
81+
return _.assign(doc._source, { milestoneTemplates })
8282
}
8383

8484
await helper.updateMetadadaESPromise(updateDocPromise)
@@ -97,14 +97,14 @@ create.schema = {
9797
async function update (message) {
9898
// handle ES Update
9999
async function updateDocPromise (doc) {
100-
const milestoneTemplate = _.map(doc._source.milestoneTemplate, (single) => {
100+
const milestoneTemplates = _.map(doc._source.milestoneTemplates, (single) => {
101101
if (single.id === message.id) {
102102
return _.assign(single, message)
103103
}
104104
return single
105105
})
106106

107-
return _.assign(doc._source, { milestoneTemplate })
107+
return _.assign(doc._source, { milestoneTemplates })
108108
}
109109

110110
await helper.updateMetadadaESPromise(updateDocPromise)
@@ -123,8 +123,8 @@ update.schema = {
123123
async function deleteMessage (message) {
124124
// handle ES Update
125125
async function updateDocPromise (doc) {
126-
const milestoneTemplate = _.filter(doc._source.milestoneTemplate, single => single.id !== message.id)
127-
return _.assign(doc._source, { milestoneTemplate })
126+
const milestoneTemplates = _.filter(doc._source.milestoneTemplates, single => single.id !== message.id)
127+
return _.assign(doc._source, { milestoneTemplates })
128128
}
129129

130130
await helper.updateMetadadaESPromise(updateDocPromise)

src/services/ProcessorServiceProductCategory.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ async function create (message) {
8181

8282
create.schema = {
8383
message: createSchema()
84-
.xor('form', 'template')
8584
}
8685

8786
/**

src/services/ProcessorServiceProjectMember.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ function createIdSchema () {
2727
function updateSchema () {
2828
return createIdSchema().keys({
2929
isPrimary: Joi.boolean(),
30-
role: Joi.any().valid(PROJECT_MEMBER_ROLE.CUSTOMER, PROJECT_MEMBER_ROLE.MANAGER,
31-
PROJECT_MEMBER_ROLE.ACCOUNT_MANAGER, PROJECT_MEMBER_ROLE.COPILOT, PROJECT_MEMBER_ROLE.OBSERVER).required()
30+
// unlike in Project Service endpoints, in this processor we should let create members with any roles
31+
// because Project Service may create members with any roles implicitly, when accepting invitations
32+
role: Joi.string().valid(_.values(PROJECT_MEMBER_ROLE)).required()
3233
})
3334
}
3435

@@ -38,8 +39,7 @@ function updateSchema () {
3839
*/
3940
function createSchema () {
4041
return createIdSchema().keys({
41-
role: Joi.any()
42-
.valid(PROJECT_MEMBER_ROLE.MANAGER, PROJECT_MEMBER_ROLE.ACCOUNT_MANAGER, PROJECT_MEMBER_ROLE.COPILOT)
42+
role: Joi.string().valid(_.values(PROJECT_MEMBER_ROLE))
4343
})
4444
}
4545

test/e2e/processor.metadata.index.test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,23 +66,23 @@ describe('TC Milestone Template Topic Tests', () => {
6666
it('create milestone template message', async () => {
6767
await ProcessorService.create(milestoneTemplateCreatedMessage)
6868
const data = await testHelper.getMetadataESData(metadataId)
69-
testHelper.expectObj(_.find(data.milestoneTemplate, { id: milestoneTemplateId }),
69+
testHelper.expectObj(_.find(data.milestoneTemplates, { id: milestoneTemplateId }),
7070
milestoneTemplateCreatedMessage.payload,
7171
_.keys(_.omit(milestoneTemplateCreatedMessage.payload, ['resource'])))
7272
})
7373

7474
it('create milestone template message - already exists', async () => {
7575
await ProcessorService.create(milestoneTemplateCreatedMessage)
7676
const data = await testHelper.getMetadataESData(metadataId)
77-
testHelper.expectObj(_.find(data.milestoneTemplate, { id: milestoneTemplateId }),
77+
testHelper.expectObj(_.find(data.milestoneTemplates, { id: milestoneTemplateId }),
7878
milestoneTemplateCreatedMessage.payload,
7979
_.keys(_.omit(milestoneTemplateCreatedMessage.payload, ['resource'])))
8080
})
8181

8282
it('update milestone template message', async () => {
8383
await ProcessorService.update(milestoneTemplateUpdatedMessage)
8484
const data = await testHelper.getMetadataESData(metadataId)
85-
testHelper.expectObj(_.find(data.milestoneTemplate, { id: milestoneTemplateId }),
85+
testHelper.expectObj(_.find(data.milestoneTemplates, { id: milestoneTemplateId }),
8686
milestoneTemplateUpdatedMessage.payload,
8787
_.keys(_.omit(milestoneTemplateUpdatedMessage.payload, ['resource'])))
8888
})
@@ -92,13 +92,13 @@ describe('TC Milestone Template Topic Tests', () => {
9292
message.payload.id = notFoundId
9393
await ProcessorService.update(message)
9494
const data = await testHelper.getMetadataESData(metadataId)
95-
expect(_.find(data.milestoneTemplate, { id: notFoundId })).to.be.an('undefined')
95+
expect(_.find(data.milestoneTemplates, { id: notFoundId })).to.be.an('undefined')
9696
})
9797

9898
it('delete milestone template message', async () => {
9999
await ProcessorService.deleteMessage(milestoneTemplateDeletedMessage)
100100
const data = await testHelper.getMetadataESData(metadataId)
101-
expect(_.find(data.milestoneTemplate, { id: milestoneTemplateId })).to.be.an('undefined')
101+
expect(_.find(data.milestoneTemplates, { id: milestoneTemplateId })).to.be.an('undefined')
102102
})
103103
})
104104

0 commit comments

Comments
 (0)