diff --git a/src/controllers/organization.ts b/src/controllers/organization.ts index 48671201..4cfce973 100644 --- a/src/controllers/organization.ts +++ b/src/controllers/organization.ts @@ -12,10 +12,7 @@ import { UserInOrganizationAlreadyError, UserMustConfirmToJoinOrganizationError, } from "../config/errors"; -import { - cancelModeration, - getOrganizationFromModeration, -} from "../managers/moderation"; +import { getOrganizationFromModeration } from "../managers/moderation"; import { doSuggestOrganizations, getOrganizationSuggestions, @@ -222,32 +219,10 @@ export const getUnableToAutoJoinOrganizationController = async ( if (e instanceof NotFoundError) { next(new HttpErrors.NotFound()); } - next(e); } }; -export const postCancelModerationAndRedirectControllerFactory = - (redirectUrl: string) => - async (req: Request, res: Response, next: NextFunction) => { - try { - const schema = z.object({ - moderation_id: idSchema(), - }); - const { moderation_id } = await schema.parseAsync(req.params); - const user = getUserFromAuthenticatedSession(req); - - await cancelModeration({ user, moderation_id }); - - return res.redirect(redirectUrl); - } catch (e) { - if (e instanceof NotFoundError) { - return res.redirect(redirectUrl); - } - next(e); - } - }; - export const postQuitUserOrganizationController = async ( req: Request, res: Response, diff --git a/src/controllers/user/edit-moderation.ts b/src/controllers/user/edit-moderation.ts index d37d9ad0..b4db8060 100644 --- a/src/controllers/user/edit-moderation.ts +++ b/src/controllers/user/edit-moderation.ts @@ -4,7 +4,10 @@ import { NotFoundError } from "../../config/errors"; import { getUserFromAuthenticatedSession } from "../../managers/session/authenticated"; import { z } from "zod"; -import { getOrganizationFromModeration } from "../../managers/moderation"; +import { + cancelModeration, + getOrganizationFromModeration, +} from "../../managers/moderation"; import { csrfToken } from "../../middlewares/csrf-protection"; import { idSchema } from "../../services/custom-zod-schemas"; @@ -40,3 +43,24 @@ export const getEditModerationController = async ( next(error); } }; + +export const postCancelModerationAndRedirectControllerFactory = + (redirectUrl: string) => + async (req: Request, res: Response, next: NextFunction) => { + try { + const schema = z.object({ + moderation_id: idSchema(), + }); + const { moderation_id } = await schema.parseAsync(req.params); + const user = getUserFromAuthenticatedSession(req); + + await cancelModeration({ user, moderation_id }); + + return res.redirect(redirectUrl); + } catch (e) { + if (e instanceof NotFoundError) { + return res.redirect(redirectUrl); + } + next(e); + } + }; diff --git a/src/routers/user.ts b/src/routers/user.ts index 44e0626b..bb64d58d 100644 --- a/src/routers/user.ts +++ b/src/routers/user.ts @@ -5,14 +5,16 @@ import { getJoinOrganizationController, getOrganizationSuggestionsController, getUnableToAutoJoinOrganizationController, - postCancelModerationAndRedirectControllerFactory, postJoinOrganizationMiddleware, postQuitUserOrganizationController, } from "../controllers/organization"; import { postSignInWithAuthenticatorAppController } from "../controllers/totp"; import { get2faSignInController } from "../controllers/user/2fa-sign-in"; import { postDeleteUserController } from "../controllers/user/delete"; -import { getEditModerationController } from "../controllers/user/edit-moderation"; +import { + getEditModerationController, + postCancelModerationAndRedirectControllerFactory, +} from "../controllers/user/edit-moderation"; import { issueSessionOrRedirectController } from "../controllers/user/issue-session-or-redirect"; import { getMagicLinkSentController,