Skip to content

Commit 9666d6f

Browse files
authored
Merge pull request #35 from topcoder-platform/hotfix/remove-invite-on-member-create-dev
[HOTFIX] [DEV] Remove not removed invite for added member - part 2
2 parents 9f8ac02 + 2e36fa0 commit 9666d6f

File tree

2 files changed

+23
-20
lines changed

2 files changed

+23
-20
lines changed

src/services/ProcessorServiceProjectMember.js

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -65,27 +65,30 @@ async function create (message) {
6565

6666
// sometimes we have issue that when member accepts invitation the invitation is somehow
6767
// is not removed from the ES, so here we are making sure that invite is removed when we are adding member
68-
const addedMember = members[existingMemberIndex]
69-
const addedMemberInvites = _.filter(doc._source.invites, (invite) => (
70-
invite.email === addedMember.email || invite.userId === addedMember.userId
71-
))
72-
73-
if (addedMemberInvites.length > 0) {
74-
logger.warn(`There are ${addedMemberInvites.length} invite(s) are not yet removed` +
75-
` for member.id: ${addedMember.id} member.userId: ${addedMember.userId}.`)
76-
77-
for (let i = 0; i < addedMemberInvites.length; i++) {
78-
const invite = addedMemberInvites[i]
79-
logger.debug(`Removing invite.id: ${invite.id} for member.id: ${addedMember.id} member.userId: ${addedMember.userId}.`)
80-
try {
81-
const message = { id: invite.id }
82-
const updateDocHandler = helper.removeInvitePromise(message)
83-
await updateDocHandler(doc)
84-
logger.debug(`Successfully removed invite.id: ${invite.id}.`)
85-
} catch (err) {
86-
logger.error(`Failed removing invite.id: ${invite.id}. ${err}`)
68+
try { // make sure that this logic never cause an error in member adding process
69+
const invites = _.filter(doc._source.invites, (invite) => (
70+
invite.email === member.email || invite.userId === member.userId
71+
))
72+
73+
if (invites.length > 0) {
74+
logger.warn(`There are ${invites.length} invite(s) are not yet removed` +
75+
` for member.id: ${member.id} member.userId: ${member.userId}.`)
76+
77+
for (let i = 0; i < invites.length; i++) {
78+
const invite = invites[i]
79+
logger.debug(`Removing invite.id: ${invite.id} for member.id: ${member.id} member.userId: ${member.userId}.`)
80+
try {
81+
const message = { id: invite.id }
82+
const updateDocHandler = helper.removeInvitePromise(message)
83+
await updateDocHandler(doc)
84+
logger.debug(`Successfully removed invite.id: ${invite.id}.`)
85+
} catch (err) {
86+
logger.error(`Failed removing invite.id: ${invite.id}. ${err}`)
87+
}
8788
}
8889
}
90+
} catch (err) {
91+
logger.error(`Error during removing existent invites for added member: ${err}`)
8992
}
9093

9194
return _.assign(doc._source, { members })

test/e2e/processor.project.index.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,7 @@ describe('TC Project Member Topic Tests', () => {
832832
_.keys(_.omit(projectMemberCreatedMessage.payload, ['resource'])))
833833
})
834834

835-
it('create project member message and remove not removed invite', async () => {
835+
it('create project member message - already exists - remove not removed invite', async () => {
836836
// let's say we still have invite
837837
await ProcessorService.create(projectMemberInviteCreatedMessage)
838838
let data = await testHelper.getProjectESData(projectId)

0 commit comments

Comments
 (0)