feat: Api for report of active and inactive users.
This commit is contained in:
65
src/controllers/report.controller.js
Normal file
65
src/controllers/report.controller.js
Normal file
@@ -0,0 +1,65 @@
|
||||
|
||||
const reportService = require('../services/report.service');
|
||||
const { logger } = require('../util/logger');
|
||||
|
||||
async function active_users(req, res) {
|
||||
const { from_date, to_date } = req.body;
|
||||
if (!from_date || !to_date) {
|
||||
return res.status(400).json({ error: 'from_date and to_date are required' });
|
||||
}
|
||||
try {
|
||||
const users = await reportService.total_users(from_date, to_date);
|
||||
const activeUsers = users.filter(u => u.is_first_login === false);
|
||||
const inactiveUsers = users.filter(u => u.is_first_login === true);
|
||||
const active_user_list = activeUsers.map(u => ({
|
||||
customer_no: u.customer_no,
|
||||
user_name: u.preferred_name,
|
||||
created_at: u.created_at,
|
||||
last_login: u.last_login,
|
||||
status: "active"
|
||||
}));
|
||||
logger.info(`fetch total number of users and active users from date ${from_date} to ${to_date}`);
|
||||
res.json({
|
||||
total_users: users.length,
|
||||
active_users: activeUsers.length,
|
||||
inactive_users: inactiveUsers.length,
|
||||
active_user_list: active_user_list
|
||||
});
|
||||
} catch (err) {
|
||||
logger.error(err, 'failed to fetch data');
|
||||
res.status(500).json({ error: 'something went wrong' });
|
||||
}
|
||||
}
|
||||
|
||||
async function inactive_users(req, res) {
|
||||
const { from_date, to_date } = req.body;
|
||||
if (!from_date || !to_date) {
|
||||
return res.status(400).json({ error: 'from_date and to_date are required' });
|
||||
}
|
||||
try {
|
||||
const users = await reportService.total_users(from_date, to_date);
|
||||
const activeUsers = users.filter(u => u.is_first_login === false);
|
||||
const inactiveUsers = users.filter(u => u.is_first_login === true);
|
||||
const inactive_user_list = inactiveUsers.map(u => ({
|
||||
customer_no: u.customer_no,
|
||||
user_name: u.preferred_name,
|
||||
created_at: u.created_at,
|
||||
last_login: u.last_login,
|
||||
status: "in-active"
|
||||
}));
|
||||
logger.info(`fetch total number of users and inactive users from date ${from_date} to ${to_date}`);
|
||||
res.json({
|
||||
total_users: users.length,
|
||||
active_users: activeUsers.length,
|
||||
inactive_users: inactiveUsers.length,
|
||||
inactive_user_list: inactive_user_list
|
||||
});
|
||||
} catch (err) {
|
||||
logger.error(err, 'failed to fetch data');
|
||||
res.status(500).json({ error: 'something went wrong' });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports = { active_users ,inactive_users };
|
||||
Reference in New Issue
Block a user