Skip to content

Commit e490ec8

Browse files
committed
added new endpoint for the validity check
1 parent cd1a561 commit e490ec8

File tree

3 files changed

+45
-2
lines changed

3 files changed

+45
-2
lines changed

src/controllers/GroupMembershipController.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,24 @@ async function getMemberGroups (req, res) {
9393
res.send(result)
9494
}
9595

96+
/**
97+
* Group Validity Check for Member
98+
* @param {*} req
99+
* @param {*} res
100+
*/
101+
async function groupValidityCheck(req, res) {
102+
const result = await service.groupValidityCheck(req.params.memberId, req.params.groupId)
103+
res.send(result)
104+
}
105+
106+
96107
module.exports = {
97108
getGroupMembers,
98109
addGroupMember,
99110
getGroupMember,
100111
deleteGroupMember,
101112
getGroupMembersCount,
102113
listGroupsMemberCount,
103-
getMemberGroups
114+
getMemberGroups,
115+
groupValidityCheck
104116
}

src/routes.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@ module.exports = {
104104
method: 'getGroupMembersCount'
105105
}
106106
},
107+
'/groups/validityCheck/:memberId/:groupId': {
108+
get: {
109+
controller: 'GroupMembershipController',
110+
method: 'groupValidityCheck'
111+
}
112+
},
107113
'/groups/:groupId/subGroup': {
108114
post: {
109115
controller: 'SubGroupController',

src/services/GroupMembershipService.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,14 +561,39 @@ getMemberGroups.schema = {
561561
memberId: Joi.id()
562562
}
563563

564+
async function groupValidityCheck(memberId, groupId) {
565+
const session = helper.createDBSession()
566+
try {
567+
const res = await session.run(
568+
`MATCH (g:Group)-[r:GroupContains*1..]->(o {id: "${memberId}"}) WHERE exists(g.oldId) AND g.status = '$constants.GroupStatus.Active}' RETURN g.oldId order by g.oldId`
569+
)
570+
571+
const validOrNot = _.includes(_.uniq(_.map(res.records, (record) => record.get(0))), groupId)
572+
573+
return {"check": validOrNot}
574+
} catch (error) {
575+
logger.error(error)
576+
throw error
577+
} finally {
578+
logger.debug('Session Close')
579+
await session.close()
580+
}
581+
}
582+
583+
groupValidityCheck.schema = {
584+
memberId: Joi.id(),
585+
groupId: Joi.id()
586+
}
587+
564588
module.exports = {
565589
getGroupMembers,
566590
addGroupMember,
567591
getGroupMember,
568592
deleteGroupMember,
569593
getGroupMembersCount,
570594
listGroupsMemberCount,
571-
getMemberGroups
595+
getMemberGroups,
596+
groupValidityCheck
572597
}
573598

574599
logger.buildService(module.exports)

0 commit comments

Comments
 (0)