File tree Expand file tree Collapse file tree 4 files changed +91
-9
lines changed Expand file tree Collapse file tree 4 files changed +91
-9
lines changed Original file line number Diff line number Diff line change 1
- const { fetchMembers, migrateUsers } = require ( '../models/members' )
1
+ const { fetchMembers, migrateUsers, deleteIsMemberProperty } = require ( '../models/members' )
2
2
const tasks = require ( '../models/tasks' )
3
3
4
4
/**
@@ -65,8 +65,28 @@ const migrateUserRoles = async (req, res) => {
65
65
}
66
66
}
67
67
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
+
68
87
module . exports = {
69
88
getMembers,
70
89
getIdleMembers,
71
- migrateUserRoles
90
+ migrateUserRoles,
91
+ deleteIsMember
72
92
}
Original file line number Diff line number Diff line change @@ -51,10 +51,7 @@ const migrateUsers = async () => {
51
51
userSnapShot . forEach ( doc => usersArr . push ( { id : doc . id , ...doc . data ( ) } ) )
52
52
53
53
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 }
58
55
59
56
await userModel . doc ( user . id ) . set ( {
60
57
...user ,
@@ -70,7 +67,37 @@ const migrateUsers = async () => {
70
67
throw err
71
68
}
72
69
}
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
+
73
99
module . exports = {
74
100
fetchMembers,
75
- migrateUsers
101
+ migrateUsers,
102
+ deleteIsMemberProperty
76
103
}
You can’t perform that action at this time.
0 commit comments