এখানে আমরা একটি userHelper.js ফাইল তৈরি করবো, যেখানে ইউজারের সাথে সম্পর্কিত কিছু হেল্পার ফাংশন থাকবে। তারপর সেই হেল্পার ফাংশনগুলো userService.js ফাইলে ব্যবহার করবো।
Step 1: User হেল্পার মেথড তৈরি করা (userHelper.js)
এই ফাইলে আমরা কিছু সাধারণ হেল্পার মেথড তৈরি করবো, যেমন – ইমেইল দিয়ে ইউজার খোঁজা, ইউজার আপডেট বা ডিলিট চেক করা, ইত্যাদি।
// helpers/userHelper.js
const User = require("../models/User");
const ApiError = require("../utils/ApiError");
const HTTP_STATUS_CODES = require("../constants/httpStatus.js");
/**
* Check if a user with the given email exists
* @param {string} email - User's email
* @returns {Promise<boolean>}
*/
const isUserExistsByEmail = async (email) => {
const user = await User.findOne({ where: { email } });
return !!user;
};
/**
* Find a user by ID
* @param {number} userId - User ID
* @returns {Promise<User>}
*/
const findUserById = async (userId) => {
const user = await User.findByPk(userId);
if (!user) {
throw new ApiError(HTTP_STATUS_CODES.NOT_FOUND, "User not found");
}
return user;
};
/**
* Validate if the user can be updated or deleted
* @param {number} userId - User ID
* @returns {Promise<void>}
*/
const validateUserUpdateOrDelete = async (userId) => {
const userExists = await User.findByPk(userId);
if (!userExists) {
throw new ApiError(HTTP_STATUS_CODES.NOT_FOUND, "User not found for update/delete");
}
};
module.exports = {
isUserExistsByEmail,
findUserById,
validateUserUpdateOrDelete,
};