diff --git a/src/controllers/admin.controller.ts b/src/controllers/admin.controller.ts deleted file mode 100644 index d0a47e42..00000000 --- a/src/controllers/admin.controller.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { Request, Response } from "express"; -import { StatusCodes } from "http-status-codes"; -import { DeleteUserSchema, PatchMarkUserVerifiedSchema } from "../schemas/admin.schema"; -import { - deleteUserByIdService, - findUsersService, - updateUserByIdService, -} from "../services/user.service"; -import logger from "../utils/logger.util"; - -/** - * This controller will get all users from database - * - * @param req request - * @param res response - * - * @author aayushchugh, is-itayush - */ -export const getAllUsersHandler = async (req: Request, res: Response) => { - try { - const records = await findUsersService(); - - return res.status(StatusCodes.OK).json({ - message: "Users fetched successfully", - records, - }); - } catch (err) { - logger.error(err); - - return res.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ - error: "Internal Server Error", - }); - } -}; - -/** - * This controller will delete user from database - * - * @param req request - * @param res response - * - * @author aayushchugh, is-it-ayush - */ -export const deleteUserHandler = async ( - req: Request, - res: Response, -) => { - const { id } = req.params; - - try { - const deletedUser = await deleteUserByIdService(id); - - if (!deletedUser) { - return res.status(StatusCodes.NOT_FOUND).json({ - error: "User not found", - }); - } - - return res.status(StatusCodes.OK).json({ - message: "User deleted successfully", - }); - } catch (err) { - logger.error(err); - - return res.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ - error: "Internal Server Error", - }); - } -}; - -/** - * This controller will mark user as verified. - * this can be used by admin to mark any user as verified - * - * @param req request - * @param res response - * - * @author aayushchugh, is-it-ayush - */ -export const patchMarkUserVerifiedHandler = async ( - req: Request, - res: Response, -) => { - const { id } = req.params; - - try { - const verifiedUser = await updateUserByIdService(id, { verified: true }); - - if (!verifiedUser) { - return res.status(StatusCodes.NOT_FOUND).json({ - error: "User not found", - }); - } - - return res.status(StatusCodes.OK).json({ - message: "User verified successfully", - }); - } catch (err) { - logger.error(err); - - return res.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ - error: "Internal Server Error", - }); - } -}; diff --git a/src/controllers/user.controller.ts b/src/controllers/user.controller.ts index 98494d43..7ab994bd 100644 --- a/src/controllers/user.controller.ts +++ b/src/controllers/user.controller.ts @@ -1,11 +1,75 @@ import { Request, Response } from "express"; import { StatusCodes } from "http-status-codes"; -import { PatchMarkUserAdminSchema, PatchMarkUserVerifiedSchema } from "../schemas/admin.schema"; +import { PatchMarkUserAdminSchema, PatchMarkUserVerifiedSchema, DeleteUserSchema } from "../schemas/admin.schema"; import { PatchUserSchema } from "../schemas/user.schema"; -import { findUserByUsernameService, updateUserByIdService } from "../services/user.service"; +import { findUserByUsernameService, updateUserByIdService, deleteUserByIdService, findUsersService } from "../services/user.service"; import logger from "../utils/logger.util"; + + +/** + * This controller will get all users from database + * + * @param req request + * @param res response + * + * @author aayushchugh, is-itayush + */ +export const getAllUsersHandler = async (req: Request, res: Response) => { + try { + const records = await findUsersService(); + + return res.status(StatusCodes.OK).json({ + message: "Users fetched successfully", + records, + }); + } catch (err) { + logger.error(err); + + return res.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ + error: "Internal Server Error", + }); + } +}; + +/** + * This controller will delete user from database + * + * @param req request + * @param res response + * + * @author aayushchugh, is-it-ayush + */ +export const deleteUserHandler = async ( + req: Request, + res: Response, +) => { + const { id } = req.params; + + try { + const deletedUser = await deleteUserByIdService(id); + + if (!deletedUser) { + return res.status(StatusCodes.NOT_FOUND).json({ + error: "User not found", + }); + } + + return res.status(StatusCodes.OK).json({ + message: "User deleted successfully", + }); + } catch (err) { + logger.error(err); + + return res.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ + error: "Internal Server Error", + }); + } +}; + + + /** * This controller will update user's username * @@ -14,6 +78,8 @@ import logger from "../utils/logger.util"; * * @author aayushchugh */ + + export const patchUserHandler = async ( req: Request, res: Response, diff --git a/src/routes/admin.routes.ts b/src/routes/admin.routes.ts index e1bca8f0..31d8a6ab 100644 --- a/src/routes/admin.routes.ts +++ b/src/routes/admin.routes.ts @@ -1,15 +1,10 @@ import { Router } from "express"; -import { - deleteUserHandler, - getAllUsersHandler, - patchMarkUserVerifiedHandler, -} from "../controllers/admin.controller"; import { createMarketingEmailHandler } from "../controllers/marketingEmail.controller"; import validateRequest from "../middleware/validateRequest.middleware"; import { deleteUserSchema, patchMarkUserVerifiedSchema } from "../schemas/admin.schema"; import { createMarketingEmailSchema } from "../schemas/marketingEmail.schema"; import { patchMarkUserAdminSchema } from "../schemas/admin.schema"; -import { patchMarkUserAdminHandler } from "../controllers/user.controller"; +import { patchMarkUserAdminHandler, deleteUserHandler, getAllUsersHandler, patchMarkUserVerifiedHandler } from "../controllers/user.controller"; const adminRouter: Router = Router();