import { Request, Response } from "express"; import AppError from "../errors/AppError"; import AuthUserService from "../services/UserServices/AuthUserService"; import { SendRefreshToken } from "../helpers/SendRefreshToken"; import { RefreshTokenService } from "../services/AuthServices/RefreshTokenService"; import createOrUpdateOnlineUserService from "../services/UserServices/CreateOrUpdateOnlineUserService"; import { removeUserFromOlineList } from "../helpers/removeUserFromOnlineList"; // const usersSocket = require("./../libs/socket"); const usersSocket = require("../libs/socket"); export const store = async (req: Request, res: Response): Promise => { const { email, password } = req.body; const { token, serializedUser, refreshToken } = await AuthUserService({ email, password }); SendRefreshToken(res, refreshToken); const userOnline = await createOrUpdateOnlineUserService({ userId: serializedUser.id, status: "online" }); return res.status(200).json({ token, user: serializedUser }); }; export const update = async ( req: Request, res: Response ): Promise => { const token: string = req.cookies.jrt; if (!token) { throw new AppError("ERR_SESSION_EXPIRED", 401); } const { user, newToken, refreshToken } = await RefreshTokenService( res, token ); SendRefreshToken(res, refreshToken); return res.json({ token: newToken, user }); }; export const remove = async ( req: Request, res: Response ): Promise => { res.clearCookie("jrt"); const { userId } = req.params; removeUserFromOlineList(userId); const userOnline = await createOrUpdateOnlineUserService({ userId, status: "offline" }); return res.send(); };