Files
ayushya b417f5c148 v.1.7.10/details:
-update webhooks log,
-add cards asset,
-fix admin dashboard
2021-03-07 19:38:56 -05:00

86 lines
2.5 KiB
JavaScript

const admin = require("firebase-admin");
const timeDiff = (ds1, ds2) => {
const d1 = new Date(ds1);
const d2 = new Date(ds2);
var diff = (d2.getTime() - d1.getTime()) / 1000;
diff /= 60 * 60;
return Math.abs(Math.round(diff));
};
const cleanUser = async (pT, sT) => {
var usersToDelete = [];
await admin
.auth()
.listUsers(1000, pT)
.then(async (listUsersResult) => {
listUsersResult.users.forEach((userRecord) => {
if (
userRecord.uid !== "PTjxbs2rAxMvCD6Pj5P6Z2U6d5A3" &&
timeDiff(userRecord.metadata.lastRefreshTime, sT) >= 24
) {
usersToDelete.push(userRecord.uid);
}
});
if (listUsersResult.pageToken) {
const uD = await cleanUser(listUsersResult.pageToken, sT);
usersToDelete.push(...uD);
}
return;
})
.catch((error) => {
console.log("Error listing users:", error);
});
return usersToDelete;
};
const batchDeleteUser = async (userList, totalNumber) => {
setTimeout(async () => {
const uTDSplice = userList.splice(0, 100);
if (uTDSplice.length > 0) {
await admin
.auth()
.deleteUsers(uTDSplice)
.catch((err) =>
console.error(
`[ERROR]\tWEBHOOKS/User Clean Up\t# OF USERS ${userList.length} REMAINING,\tERROR:${err}`
)
);
console.info(
`[DONE]\tWEBHOOKS/User Clean Up\t# OF USERS ${uTDSplice.length}/${userList.length}`
);
batchDeleteUser(userList, totalNumber);
} else {
console.info(
`[DONE]\tWEBHOOKS/User Clean Up\tDeleted all ${totalNumber} stale users`
);
}
}, 3000);
};
module.exports = async (req, res) => {
console.info(`[START]\tWEBHOOKS/User Clean Up`);
const startedTime = new Date();
try {
const usersToDelete = await cleanUser(undefined, startedTime);
const totalNumber = usersToDelete.length;
console.info(
`[PROGRESS]\tWEBHOOKS/User Clean Up\t# OF USERS ${totalNumber}`
);
await batchDeleteUser(usersToDelete, totalNumber);
res.status(200).send({
message: `[${new Date().toLocaleString("en-US", {
timeZone: "America/New_York",
})}] [DONE] WEBHOOKS User Clean Up Deleted all ${totalNumber} stale users`,
});
} catch (err) {
res.status(400).send({
message: `[${new Date().toLocaleString("en-US", {
timeZone: "America/New_York",
})}] [ERROR] WEBHOOKS User Clean Up Error trying to delete users - ${JSON.stringify(
err
)}`,
});
}
};