EvalueTonSavoir/server/controllers/admin.js

87 lines
2.1 KiB
JavaScript
Raw Normal View History

2025-03-14 12:50:24 -04:00
const AppError = require('../middleware/AppError.js');
const { MISSING_REQUIRED_PARAMETER, IMAGE_NOT_FOUND } = require('../constants/errorCodes');
class AdminController {
constructor(model) {
this.model = model;
}
2025-03-14 13:00:19 -04:00
getUsers = async (req, res, next) => {
2025-03-14 12:50:24 -04:00
try {
const users = await this.model.getUsers();
return res.status(200).json({
users: users
});
} catch (error) {
return next(error);
}
};
2025-03-14 13:00:19 -04:00
2025-03-16 20:26:55 -04:00
getStats = async (req, res, next) => {
2025-03-14 13:00:19 -04:00
try {
2025-03-16 20:26:55 -04:00
const data = await this.model.getStats();
2025-03-14 13:00:19 -04:00
2025-03-16 20:26:55 -04:00
return res.status(200).json({ data });
2025-03-14 13:00:19 -04:00
} catch (error) {
return next(error);
}
};
getImages = async (req, res, next) => {
try {
const page = parseInt(req.query.page) || 1;
const limit = parseInt(req.query.limit) || 10;
const imgs = await this.model.getImages(page, limit);
2025-03-16 00:52:22 -04:00
return res.status(200).json({ data: imgs });
2025-03-14 13:00:19 -04:00
} catch (error) {
return next(error);
}
};
deleteUser = async (req, res, next) => {
try {
const { id } = req.params;
if (!id) {
throw new AppError(MISSING_REQUIRED_PARAMETER);
}
const user = await this.model.deleteUser(id);
if (!user) {
throw new AppError(IMAGE_NOT_FOUND);
}
return res.status(200).json({ user: user });
} catch (error) {
return next(error);
}
};
deleteImage = async (req, res, next) => {
2025-03-14 12:50:24 -04:00
try {
2025-03-16 20:26:55 -04:00
const { imgId } = req.query;
if (!imgId) {
2025-03-14 12:50:24 -04:00
throw new AppError(MISSING_REQUIRED_PARAMETER);
}
2025-03-16 20:26:55 -04:00
const deleted = await this.model.deleteImage(imgId);
2025-03-14 12:50:24 -04:00
2025-03-16 20:26:55 -04:00
if (!deleted) {
2025-03-14 12:50:24 -04:00
throw new AppError(IMAGE_NOT_FOUND);
}
2025-03-16 20:26:55 -04:00
return res.status(200).json({ deleted });
2025-03-14 12:50:24 -04:00
} catch (error) {
return next(error);
}
};
}
module.exports = AdminController;