Skip to content

Commit cc27716

Browse files
authored
Merge pull request #134 from topcoder-platform/develop
PLAT-2125
2 parents b82fc78 + 16929d1 commit cc27716

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

src/services/GroupService.js

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ async function updateGroup(currentUser, groupId, data) {
277277

278278
// update the cache
279279
const cache = await helper.getCacheInstance()
280-
cache.set(group.id, updateGroup)
280+
cache.set(group.id, updatedGroup)
281281

282282
return updatedGroup
283283
} catch (error) {
@@ -375,7 +375,7 @@ async function getGroup(currentUser, groupId, criteria) {
375375
)}`
376376
)
377377

378-
if (_.has(criteria, 'skipCache')) {
378+
if (!_.has(criteria, 'skipCache')) {
379379
criteria.skipCache = false
380380
}
381381

@@ -425,8 +425,14 @@ async function getGroup(currentUser, groupId, criteria) {
425425
)
426426
}
427427
}
428-
429-
const session = helper.createDBSession()
428+
429+
let session
430+
const getSession = () => {
431+
if (!session) {
432+
session = helper.createDBSession()
433+
}
434+
return session
435+
}
430436
const cache = await helper.getCacheInstance()
431437

432438
let groupToReturn
@@ -445,21 +451,21 @@ async function getGroup(currentUser, groupId, criteria) {
445451
const cachedGroupMembers = cache.get(`${groupId}-members`)
446452

447453
if (!_.includes(cachedGroupMembers, currentUser.userId)) {
448-
await helper.ensureGroupMember(session, group.id, currentUser.userId)
454+
await helper.ensureGroupMember(getSession(), group.id, currentUser.userId)
449455

450456
cachedGroupMembers.push(currentUser.userId)
451457
cache.set(`${groupId}-members`, cachedGroupMembers)
452458
}
453459
}
454460
} else {
455-
groupToReturn = await helper.ensureExists(session, 'Group', groupId, isAdmin)
461+
groupToReturn = await helper.ensureExists(getSession(), 'Group', groupId, isAdmin)
456462
cache.set(groupId, groupToReturn)
457463

458464
if (!isAdmin) delete groupToReturn.status
459465

460466
// if the group is private, the user needs to be a member of the group, or an admin
461467
if (groupToReturn.privateGroup && currentUser !== 'M2M' && !helper.hasAdminRole(currentUser)) {
462-
await helper.ensureGroupMember(session, groupToReturn.id, currentUser.userId)
468+
await helper.ensureGroupMember(getSession(), groupToReturn.id, currentUser.userId)
463469

464470
cache.set(`${groupId}-members`, [currentUser.userId])
465471
}
@@ -489,7 +495,7 @@ async function getGroup(currentUser, groupId, criteria) {
489495
const flattenGroupIdTree = []
490496

491497
// find child groups
492-
groupToExpand.subGroups = await helper.getChildGroups(session, groupToExpand.id)
498+
groupToExpand.subGroups = await helper.getChildGroups(getSession(), groupToExpand.id)
493499
// add child groups to pending if needed
494500
if (!criteria.oneLevel) {
495501
_.forEach(groupToExpand.subGroups, (g) => {
@@ -502,7 +508,7 @@ async function getGroup(currentUser, groupId, criteria) {
502508
}
503509
} else if (criteria.includeParentGroup && !groupToReturn.parentGroups) {
504510
// find parent groups
505-
groupToExpand.parentGroups = await helper.getParentGroups(session, groupToExpand.id)
511+
groupToExpand.parentGroups = await helper.getParentGroups(getSession(), groupToExpand.id)
506512
// add parent groups to pending if needed
507513
if (!criteria.oneLevel) {
508514
_.forEach(groupToExpand.parentGroups, (g) => pending.push(g))
@@ -529,7 +535,9 @@ async function getGroup(currentUser, groupId, criteria) {
529535
throw error
530536
} finally {
531537
logger.debug('Session Close')
532-
await session.close()
538+
if (session) {
539+
await session.close()
540+
}
533541
}
534542
}
535543

0 commit comments

Comments
 (0)