Skip to content

Commit 93b5765

Browse files
committed
Add route to delete isMember
1 parent cdde719 commit 93b5765

File tree

4 files changed

+91
-9
lines changed

4 files changed

+91
-9
lines changed

controllers/members.js

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { fetchMembers, migrateUsers } = require('../models/members')
1+
const { fetchMembers, migrateUsers, deleteIsMemberProperty } = require('../models/members')
22
const tasks = require('../models/tasks')
33

44
/**
@@ -65,8 +65,28 @@ const migrateUserRoles = async (req, res) => {
6565
}
6666
}
6767

68+
/**
69+
* Returns the lists of usernames whose isMember property was deleted
70+
*
71+
* @param req {Object} - Express request object
72+
* @param res {Object} - Express response object
73+
*/
74+
const deleteIsMember = async (req, res) => {
75+
try {
76+
const deletedIsMemberData = await deleteIsMemberProperty()
77+
return res.json({
78+
message: 'Users isMember deleted successfully',
79+
...deletedIsMemberData
80+
})
81+
} catch (error) {
82+
logger.error(`Error while deleting isMember: ${error}`)
83+
return res.boom.badImplementation('Something went wrong. Please contact admin')
84+
}
85+
}
86+
6887
module.exports = {
6988
getMembers,
7089
getIdleMembers,
71-
migrateUserRoles
90+
migrateUserRoles,
91+
deleteIsMember
7292
}

models/members.js

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,7 @@ const migrateUsers = async () => {
5151
userSnapShot.forEach(doc => usersArr.push({ id: doc.id, ...doc.data() }))
5252

5353
for (const user of usersArr) {
54-
const roles = { member: true }
55-
56-
if (!user.isMember) roles.member = false
57-
delete user.isMember
54+
const roles = { ...user.roles, member: true }
5855

5956
await userModel.doc(user.id).set({
6057
...user,
@@ -70,7 +67,37 @@ const migrateUsers = async () => {
7067
throw err
7168
}
7269
}
70+
71+
/**
72+
* Deletes isMember property from user object
73+
* @return {Promise<usersMigrated|Object>}
74+
*/
75+
const deleteIsMemberProperty = async () => {
76+
try {
77+
const userSnapShot = await userModel.where('roles', '!=', false).get()
78+
const migratedUsers = []
79+
80+
const usersArr = []
81+
82+
userSnapShot.forEach(doc => usersArr.push({ id: doc.id, ...doc.data() }))
83+
84+
for (const user of usersArr) {
85+
delete user.isMember
86+
87+
await userModel.doc(user.id).set({ ...user })
88+
89+
migratedUsers.push(user.username)
90+
}
91+
92+
return { count: migratedUsers.length, users: migratedUsers }
93+
} catch (err) {
94+
logger.error('Error deleting isMember property', err)
95+
throw err
96+
}
97+
}
98+
7399
module.exports = {
74100
fetchMembers,
75-
migrateUsers
101+
migrateUsers,
102+
deleteIsMemberProperty
76103
}

0 commit comments

Comments
 (0)