diff --git a/src/command/inviteCommandHandler.ts b/src/command/inviteCommandHandler.ts index 468247b..23a5939 100644 --- a/src/command/inviteCommandHandler.ts +++ b/src/command/inviteCommandHandler.ts @@ -37,7 +37,7 @@ export default abstract class InviteCommandHandler { /** * @description delete invite by mail and token - * @param DeleteInviteCommand + * @param DeleteRefreshCommand * @returns {Promise} */ static async deleteByTokenAndMail(deleteInvite: DeleteInviteCommand): Promise { @@ -53,22 +53,4 @@ export default abstract class InviteCommandHandler { throw new InternalException("failed invite removal", err); }); } - - /** - * @description delete invite by mail - * @param DeleteByMailInviteCommand - * @returns {Promise} - */ - static async deleteByMail(mail: string): Promise { - return await dataSource - .createQueryBuilder() - .delete() - .from(invite) - .where("invite.mail = :mail", { mail }) - .execute() - .then((res) => {}) - .catch((err) => { - throw new InternalException("failed invite removal", err); - }); - } } diff --git a/src/controller/inviteController.ts b/src/controller/inviteController.ts index 8fa2f34..a6ff7eb 100644 --- a/src/controller/inviteController.ts +++ b/src/controller/inviteController.ts @@ -18,19 +18,6 @@ import CustomRequestException from "../exceptions/customRequestException"; import { CLUB_NAME } from "../env.defaults"; import { CreateUserPermissionCommand } from "../command/userPermissionCommand"; import UserPermissionCommandHandler from "../command/userPermissionCommandHandler"; -import InviteFactory from "../factory/admin/invite"; - -/** - * @description get all invites - * @param req {Request} Express req object - * @param res {Response} Express res object - * @returns {Promise<*>} - */ -export async function getInvites(req: Request, res: Response): Promise { - let invites = await InviteService.getAll(); - - res.json(InviteFactory.mapToBase(invites)); -} /** * @description start first user @@ -91,7 +78,7 @@ export async function verifyInvite(req: Request, res: Response): Promise { let mail = req.body.mail; let token = req.body.token; - let { secret, username } = await InviteService.getByMailAndToken(mail, token); + let { secret } = await InviteService.getByMailAndToken(mail, token); const url = `otpauth://totp/Mitgliederverwaltung ${CLUB_NAME}?secret=${secret}`; @@ -100,7 +87,6 @@ export async function verifyInvite(req: Request, res: Response): Promise { res.json({ dataUrl: result, otp: secret, - username, }); }) .catch((err) => { @@ -160,17 +146,3 @@ export async function finishInvite(req: Request, res: Response, grantAdmin: bool refreshToken, }); } - -/** - * @description delete invite by mail - * @param req {Request} Express req object - * @param res {Response} Express res object - * @returns {Promise<*>} - */ -export async function deleteInvite(req: Request, res: Response): Promise { - const mail = req.params.mail; - - await InviteCommandHandler.deleteByMail(mail); - - res.sendStatus(204); -} diff --git a/src/factory/admin/invite.ts b/src/factory/admin/invite.ts deleted file mode 100644 index a1ac7a7..0000000 --- a/src/factory/admin/invite.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { invite } from "../../entity/invite"; -import { InviteViewModel } from "../../viewmodel/admin/invite.models"; - -export default abstract class InviteFactory { - /** - * @description map record to invite - * @param {invite} record - * @returns {InviteViewModel} - */ - public static mapToSingle(record: invite): InviteViewModel { - return { - mail: record.mail, - username: record.username, - firstname: record.firstname, - lastname: record.lastname, - }; - } - - /** - * @description map records to invite - * @param {Array} records - * @returns {Array} - */ - public static mapToBase(records: Array): Array { - return records.map((r) => this.mapToSingle(r)); - } -} diff --git a/src/routes/admin/index.ts b/src/routes/admin/index.ts index 3df08e7..cdafa5e 100644 --- a/src/routes/admin/index.ts +++ b/src/routes/admin/index.ts @@ -14,7 +14,6 @@ import calendar from "./calendar"; import role from "./role"; import user from "./user"; -import invite from "./invite"; var router = express.Router({ mergeParams: true }); @@ -43,6 +42,5 @@ router.use("/calendar", PermissionHelper.passCheckMiddleware("read", "club", "ca router.use("/role", PermissionHelper.passCheckMiddleware("read", "user", "role"), role); router.use("/user", PermissionHelper.passCheckMiddleware("read", "user", "user"), user); -router.use("/invite", PermissionHelper.passCheckMiddleware("read", "user", "user"), invite); export default router; diff --git a/src/routes/admin/invite.ts b/src/routes/admin/invite.ts deleted file mode 100644 index 0eb5070..0000000 --- a/src/routes/admin/invite.ts +++ /dev/null @@ -1,27 +0,0 @@ -import express, { Request, Response } from "express"; -import PermissionHelper from "../../helpers/permissionHelper"; -import { deleteInvite, getInvites, inviteUser } from "../../controller/inviteController"; - -var router = express.Router({ mergeParams: true }); - -router.get("/", async (req: Request, res: Response) => { - await getInvites(req, res); -}); - -router.post( - "/", - PermissionHelper.passCheckMiddleware("create", "user", "user"), - async (req: Request, res: Response) => { - await inviteUser(req, res); - } -); - -router.delete( - "/:mail", - PermissionHelper.passCheckMiddleware("delete", "user", "user"), - async (req: Request, res: Response) => { - await deleteInvite(req, res); - } -); - -export default router; diff --git a/src/routes/admin/user.ts b/src/routes/admin/user.ts index 8bfd44b..7ce7046 100644 --- a/src/routes/admin/user.ts +++ b/src/routes/admin/user.ts @@ -30,6 +30,14 @@ router.get("/:id/roles", async (req: Request, res: Response) => { await getUserRoles(req, res); }); +router.post( + "/invite", + PermissionHelper.passCheckMiddleware("create", "user", "user"), + async (req: Request, res: Response) => { + await inviteUser(req, res); + } +); + router.patch( "/:id", PermissionHelper.passCheckMiddleware("update", "user", "user"), diff --git a/src/routes/index.ts b/src/routes/index.ts index eee3e7d..5025c17 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -8,7 +8,6 @@ import errorHandler from "../middleware/errorHandler"; import publicAvailable from "./public"; import setup from "./setup"; -import invite from "./invite"; import reset from "./reset"; import auth from "./auth"; import admin from "./admin/index"; @@ -28,7 +27,6 @@ export default (app: Express) => { app.use("/public", publicAvailable); app.use("/setup", allowSetup, setup); app.use("/reset", reset); - app.use("/invite", invite); app.use("/auth", auth); app.use(authenticate); app.use("/admin", admin); diff --git a/src/routes/invite.ts b/src/routes/invite.ts deleted file mode 100644 index 783ecef..0000000 --- a/src/routes/invite.ts +++ /dev/null @@ -1,16 +0,0 @@ -import express from "express"; -import { isSetup } from "../controller/setupController"; -import { finishInvite, inviteUser, verifyInvite } from "../controller/inviteController"; -import ParamaterPassCheckHelper from "../helpers/parameterPassCheckHelper"; - -var router = express.Router({ mergeParams: true }); - -router.post("/verify", ParamaterPassCheckHelper.requiredIncludedMiddleware(["mail", "token"]), async (req, res) => { - await verifyInvite(req, res); -}); - -router.put("/", ParamaterPassCheckHelper.requiredIncludedMiddleware(["mail", "token", "totp"]), async (req, res) => { - await finishInvite(req, res); -}); - -export default router; diff --git a/src/service/inviteService.ts b/src/service/inviteService.ts index f6e6a7c..8af16ec 100644 --- a/src/service/inviteService.ts +++ b/src/service/inviteService.ts @@ -3,23 +3,6 @@ import { invite } from "../entity/invite"; import InternalException from "../exceptions/internalException"; export default abstract class InviteService { - /** - * @description get all invites - * @returns {Promise>} - */ - static async getAll(): Promise> { - return await dataSource - .getRepository(invite) - .createQueryBuilder("invite") - .getMany() - .then((res) => { - return res; - }) - .catch((err) => { - throw new InternalException("invites not found", err); - }); - } - /** * @description get invite by id * @param mail string diff --git a/src/viewmodel/admin/invite.models.ts b/src/viewmodel/admin/invite.models.ts deleted file mode 100644 index 6f886df..0000000 --- a/src/viewmodel/admin/invite.models.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface InviteViewModel { - mail: string; - username: string; - firstname: string; - lastname: string; -}