Skip to content

Commit

Permalink
refactor: move postCancelModerationAndRedirectControllerFactory into …
Browse files Browse the repository at this point in the history
…edit-moderation.ts file
  • Loading branch information
rebeccadumazert committed Oct 10, 2024
1 parent 0d0ca3f commit 19d0c5d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 29 deletions.
27 changes: 1 addition & 26 deletions src/controllers/organization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@ import {
UserInOrganizationAlreadyError,
UserMustConfirmToJoinOrganizationError,
} from "../config/errors";
import {
cancelModeration,
getOrganizationFromModeration,
} from "../managers/moderation";
import { getOrganizationFromModeration } from "../managers/moderation";
import {
doSuggestOrganizations,
getOrganizationSuggestions,
Expand Down Expand Up @@ -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,
Expand Down
26 changes: 25 additions & 1 deletion src/controllers/user/edit-moderation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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";

Expand Down Expand Up @@ -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);
}
};
6 changes: 4 additions & 2 deletions src/routers/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 19d0c5d

Please sign in to comment.