edit:module:user:*update | add refresh jwt token after user doing chances
This commit is contained in:
@ -1,9 +1,18 @@
|
|||||||
|
import { ErrorForwarder } from "../../../helpers/error/instances/forwarder";
|
||||||
import { UserHeaderInformation } from "../../../helpers/http/userHeader/getUserHeaderInformation/types";
|
import { UserHeaderInformation } from "../../../helpers/http/userHeader/getUserHeaderInformation/types";
|
||||||
import { createUserSessionService } from "../../userSession/services/createUserSession.service";
|
import { createUserSessionService } from "../../userSession/services/createUserSession.service";
|
||||||
|
|
||||||
export const loginFromSystemService = (
|
export const loginFromSystemService = async (
|
||||||
userId: string,
|
userId: string,
|
||||||
userHeaderInfo: UserHeaderInformation
|
userHeaderInfo: UserHeaderInformation
|
||||||
) => {
|
) => {
|
||||||
// const userSession = await createUserSessionService()
|
try {
|
||||||
|
const userSession = await createUserSessionService({
|
||||||
|
userId,
|
||||||
|
userHeaderInformation: userHeaderInfo,
|
||||||
|
});
|
||||||
|
return userSession;
|
||||||
|
} catch (error) {
|
||||||
|
ErrorForwarder(error);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -7,6 +7,10 @@ import { mainErrorHandler } from "../../../helpers/error/handler";
|
|||||||
import { Prisma } from "@prisma/client";
|
import { Prisma } from "@prisma/client";
|
||||||
import { editUserService } from "../services/editUser.service";
|
import { editUserService } from "../services/editUser.service";
|
||||||
import { getCookie } from "../../../helpers/http/userHeader/cookies/getCookies";
|
import { getCookie } from "../../../helpers/http/userHeader/cookies/getCookies";
|
||||||
|
import { getUserHeaderInformation } from "../../../helpers/http/userHeader/getUserHeaderInformation";
|
||||||
|
import { setCookie } from "../../../helpers/http/userHeader/cookies/setCookies";
|
||||||
|
import { COOKIE_KEYS } from "../../../constants/cookie.keys";
|
||||||
|
import { jwtEncode } from "../../../helpers/http/jwt/encode";
|
||||||
|
|
||||||
export const editUserController = async (
|
export const editUserController = async (
|
||||||
ctx: Context & {
|
ctx: Context & {
|
||||||
@ -19,8 +23,18 @@ export const editUserController = async (
|
|||||||
if (!auth_token)
|
if (!auth_token)
|
||||||
return returnErrorResponse(ctx.set, 401, "User Unauthenticated");
|
return returnErrorResponse(ctx.set, 401, "User Unauthenticated");
|
||||||
|
|
||||||
const editUser = await editUserService(auth_token, ctx.body);
|
const userHeaderInfo = getUserHeaderInformation(ctx);
|
||||||
return editUser;
|
|
||||||
|
const newUserData = await editUserService(
|
||||||
|
auth_token,
|
||||||
|
userHeaderInfo,
|
||||||
|
ctx.body
|
||||||
|
);
|
||||||
|
|
||||||
|
const newJwtToken = await jwtEncode(newUserData);
|
||||||
|
setCookie(ctx.set, COOKIE_KEYS.AUTH, newJwtToken);
|
||||||
|
|
||||||
|
return returnWriteResponse(ctx.set, 201, "User data updated", newJwtToken);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return mainErrorHandler(ctx.set, error);
|
return mainErrorHandler(ctx.set, error);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,9 +4,13 @@ import { AppError } from "../../../helpers/error/instances/app";
|
|||||||
import { ErrorForwarder } from "../../../helpers/error/instances/forwarder";
|
import { ErrorForwarder } from "../../../helpers/error/instances/forwarder";
|
||||||
import { updateUserRepo } from "../repositories/updateUser.repository";
|
import { updateUserRepo } from "../repositories/updateUser.repository";
|
||||||
import { checkUserEmailAndUsernameAvailabillityService } from "./checkUserEmailAndUsernameAvailabillity.service";
|
import { checkUserEmailAndUsernameAvailabillityService } from "./checkUserEmailAndUsernameAvailabillity.service";
|
||||||
|
import { logoutService } from "../../auth/services/logout.service";
|
||||||
|
import { loginFromSystemService } from "../../auth/services/loginFromSystem.service";
|
||||||
|
import { UserHeaderInformation } from "../../../helpers/http/userHeader/getUserHeaderInformation/types";
|
||||||
|
|
||||||
export const editUserService = async (
|
export const editUserService = async (
|
||||||
cookie: string,
|
cookie: string,
|
||||||
|
userHeaderInfo: UserHeaderInformation,
|
||||||
payload: Prisma.UserUpdateInput
|
payload: Prisma.UserUpdateInput
|
||||||
) => {
|
) => {
|
||||||
try {
|
try {
|
||||||
@ -55,11 +59,15 @@ export const editUserService = async (
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Update the user in the database, use username from the JWT session to find the user
|
// Update the user in the database, use username from the JWT session to find the user
|
||||||
const updateUser = await updateUserRepo(
|
await updateUserRepo(jwtSession.user.username, fieldsToUpdate);
|
||||||
jwtSession.user.username,
|
|
||||||
fieldsToUpdate
|
await logoutService(cookie);
|
||||||
|
const newUserSession = await loginFromSystemService(
|
||||||
|
jwtSession.userId,
|
||||||
|
userHeaderInfo
|
||||||
);
|
);
|
||||||
return updateUser;
|
|
||||||
|
return newUserSession;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
ErrorForwarder(error, 500, "Internal server error");
|
ErrorForwarder(error, 500, "Internal server error");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user