refactor otp listeners

This commit is contained in:
dswbx
2025-11-10 09:40:47 +01:00
parent 6eb8525656
commit c2f4f92d1a
3 changed files with 17 additions and 16 deletions
@@ -256,4 +256,6 @@ describe("otp plugin", () => {
// @todo: test invalid codes
// @todo: test codes with different actions
// @todo: test code expiration
// @todo: test code reuse
// @todo: test invalidation of previous codes when sending new code
});
+13 -15
View File
@@ -103,7 +103,7 @@ export function emailOTP({
}: EmailOTPPluginOptions = {}): AppPlugin {
return (app: App) => {
return {
name: "bknd-email-otp",
name: "email-otp",
schema: () =>
em(
{
@@ -348,20 +348,18 @@ async function invalidateAllUserCodes(app: App, entityName: string, email: strin
}
function registerListeners(app: App, entityName: string) {
app.emgr.onAny(
(event) => {
if (
event instanceof DatabaseEvents.MutatorInsertBefore ||
event instanceof DatabaseEvents.MutatorUpdateBefore
) {
if (event.params.entity.name === entityName) {
[DatabaseEvents.MutatorInsertBefore, DatabaseEvents.MutatorUpdateBefore].forEach((event) => {
app.emgr.onEvent(
event,
(e: { params: { entity: { name: string } } }) => {
if (e.params.entity.name === entityName) {
throw new OTPError("Mutations of the OTP entity are not allowed");
}
}
},
{
mode: "sync",
id: "bknd-email-otp",
},
);
},
{
mode: "sync",
id: "bknd-email-otp",
},
);
});
}