From db34000de9eb9047e378df8679ddaec674928040 Mon Sep 17 00:00:00 2001 From: Robin Monnier Date: Fri, 11 Oct 2024 13:15:12 +0200 Subject: [PATCH] fix: separate types from routes files --- .../auth/agent-connect/agent-connect-types.ts | 19 +++++++++++++++++++ app/api/auth/agent-connect/callback/route.ts | 13 ++----------- app/api/auth/agent-connect/login/route.ts | 4 ++-- .../agent-connect/logout-callback/route.ts | 4 ++-- app/api/auth/agent-connect/logout/route.ts | 13 ++----------- app/api/auth/france-connect/callback/route.ts | 11 +---------- .../france-connect/france-connect-types.ts | 19 +++++++++++++++++++ app/api/auth/france-connect/login/route.ts | 2 +- .../france-connect/logout-callback/route.ts | 4 ++-- app/api/auth/france-connect/logout/route.ts | 13 ++----------- 10 files changed, 52 insertions(+), 50 deletions(-) create mode 100644 app/api/auth/agent-connect/agent-connect-types.ts create mode 100644 app/api/auth/france-connect/france-connect-types.ts diff --git a/app/api/auth/agent-connect/agent-connect-types.ts b/app/api/auth/agent-connect/agent-connect-types.ts new file mode 100644 index 000000000..d4ed4a1f2 --- /dev/null +++ b/app/api/auth/agent-connect/agent-connect-types.ts @@ -0,0 +1,19 @@ +import { Exception } from '#models/exceptions'; + +export class AgentConnectLogoutFailedException extends Exception { + constructor(args: { cause?: any }) { + super({ + ...args, + name: 'LogoutFailedException', + }); + } +} + +export class AgentConnectFailedException extends Exception { + constructor(args: { cause?: any }) { + super({ + name: 'AgentConnectionFailedException', + ...args, + }); + } +} diff --git a/app/api/auth/agent-connect/callback/route.ts b/app/api/auth/agent-connect/callback/route.ts index 988bdbe45..091d30674 100644 --- a/app/api/auth/agent-connect/callback/route.ts +++ b/app/api/auth/agent-connect/callback/route.ts @@ -1,11 +1,11 @@ import { agentConnectAuthenticate } from '#clients/authentication/agent-connect/strategy'; import { HttpForbiddenError } from '#clients/exceptions'; -import { Exception } from '#models/exceptions'; import { getAgent } from '#models/user/agent'; import { logFatalErrorInSentry } from '#utils/sentry'; import { cleanPathFrom, getPathFrom, setAgentSession } from '#utils/session'; import withSession from '#utils/session/with-session'; import { NextResponse } from 'next/server'; +import { AgentConnectFailedException } from '../agent-connect-types'; export const GET = withSession(async function callbackRoute(req) { try { @@ -23,7 +23,7 @@ export const GET = withSession(async function callbackRoute(req) { return NextResponse.redirect('/'); } } catch (e: any) { - logFatalErrorInSentry(new AgentConnectionFailedException({ cause: e })); + logFatalErrorInSentry(new AgentConnectFailedException({ cause: e })); if (e instanceof HttpForbiddenError) { return NextResponse.redirect('/connexion/echec-authorisation-requise'); } else { @@ -31,12 +31,3 @@ export const GET = withSession(async function callbackRoute(req) { } } }); - -export class AgentConnectionFailedException extends Exception { - constructor(args: { cause?: any }) { - super({ - name: 'AgentConnectionFailedException', - ...args, - }); - } -} diff --git a/app/api/auth/agent-connect/login/route.ts b/app/api/auth/agent-connect/login/route.ts index fafd9b1cd..5142304af 100644 --- a/app/api/auth/agent-connect/login/route.ts +++ b/app/api/auth/agent-connect/login/route.ts @@ -3,7 +3,7 @@ import { logFatalErrorInSentry } from '#utils/sentry'; import { setPathFrom } from '#utils/session'; import withSession from '#utils/session/with-session'; import { NextResponse } from 'next/server'; -import { AgentConnectionFailedException } from '../callback/route'; +import { AgentConnectFailedException } from '../agent-connect-types'; export const GET = withSession(async function loginRoute(req) { try { @@ -16,7 +16,7 @@ export const GET = withSession(async function loginRoute(req) { const url = await agentConnectAuthorizeUrl(req); return NextResponse.redirect(url); } catch (e: any) { - logFatalErrorInSentry(new AgentConnectionFailedException({ cause: e })); + logFatalErrorInSentry(new AgentConnectFailedException({ cause: e })); return NextResponse.redirect('/connexion/echec-connexion'); } }); diff --git a/app/api/auth/agent-connect/logout-callback/route.ts b/app/api/auth/agent-connect/logout-callback/route.ts index 0be6329af..26727957b 100644 --- a/app/api/auth/agent-connect/logout-callback/route.ts +++ b/app/api/auth/agent-connect/logout-callback/route.ts @@ -2,7 +2,7 @@ import logErrorInSentry from '#utils/sentry'; import { cleanAgentSession, cleanPathFrom, getPathFrom } from '#utils/session'; import withSession from '#utils/session/with-session'; import { NextResponse } from 'next/server'; -import { LogoutFailedException } from '../logout/route'; +import { AgentConnectLogoutFailedException } from '../agent-connect-types'; export const GET = withSession(async function logoutCallbackRoute(req) { try { @@ -16,7 +16,7 @@ export const GET = withSession(async function logoutCallbackRoute(req) { return NextResponse.redirect('/connexion/au-revoir'); } } catch (e: any) { - logErrorInSentry(new LogoutFailedException({ cause: e })); + logErrorInSentry(new AgentConnectLogoutFailedException({ cause: e })); return NextResponse.redirect('/connexion/au-revoir'); } }); diff --git a/app/api/auth/agent-connect/logout/route.ts b/app/api/auth/agent-connect/logout/route.ts index 143eff4db..be3dfaeef 100644 --- a/app/api/auth/agent-connect/logout/route.ts +++ b/app/api/auth/agent-connect/logout/route.ts @@ -1,9 +1,9 @@ import { agentConnectLogoutUrl } from '#clients/authentication/agent-connect/strategy'; -import { Exception } from '#models/exceptions'; import logErrorInSentry from '#utils/sentry'; import { setPathFrom } from '#utils/session'; import withSession from '#utils/session/with-session'; import { NextResponse } from 'next/server'; +import { AgentConnectLogoutFailedException } from '../agent-connect-types'; export const GET = withSession(async function logoutRoute(req) { try { @@ -11,16 +11,7 @@ export const GET = withSession(async function logoutRoute(req) { const url = await agentConnectLogoutUrl(req); return NextResponse.redirect(url); } catch (e: any) { - logErrorInSentry(new LogoutFailedException({ cause: e })); + logErrorInSentry(new AgentConnectLogoutFailedException({ cause: e })); return NextResponse.redirect('/connexion/au-revoir'); } }); - -export class LogoutFailedException extends Exception { - constructor(args: { cause?: any }) { - super({ - ...args, - name: 'LogoutFailedException', - }); - } -} diff --git a/app/api/auth/france-connect/callback/route.ts b/app/api/auth/france-connect/callback/route.ts index 7098d1101..c8b84175d 100644 --- a/app/api/auth/france-connect/callback/route.ts +++ b/app/api/auth/france-connect/callback/route.ts @@ -1,9 +1,9 @@ import { franceConnectAuthenticate } from '#clients/authentication/france-connect/strategy'; -import { Exception } from '#models/exceptions'; import logErrorInSentry from '#utils/sentry'; import { setHidePersonalDataRequestFCSession } from '#utils/session'; import withSession from '#utils/session/with-session'; import { NextResponse } from 'next/server'; +import { FranceConnectFailedException } from '../france-connect-types'; export const GET = withSession(async function callbackRoute(req) { try { @@ -24,12 +24,3 @@ export const GET = withSession(async function callbackRoute(req) { return NextResponse.redirect('/connexion/echec-connexion'); } }); - -export class FranceConnectFailedException extends Exception { - constructor(args: { cause?: any }) { - super({ - name: 'FranceConnectFailedException', - ...args, - }); - } -} diff --git a/app/api/auth/france-connect/france-connect-types.ts b/app/api/auth/france-connect/france-connect-types.ts new file mode 100644 index 000000000..0e9966392 --- /dev/null +++ b/app/api/auth/france-connect/france-connect-types.ts @@ -0,0 +1,19 @@ +import { Exception } from '#models/exceptions'; + +export class FranceConnectFailedException extends Exception { + constructor(args: { cause?: any }) { + super({ + name: 'FranceConnectFailedException', + ...args, + }); + } +} + +export class FranceConnectLogoutFailedException extends Exception { + constructor(args: { cause?: any }) { + super({ + ...args, + name: 'LogoutFailedException', + }); + } +} diff --git a/app/api/auth/france-connect/login/route.ts b/app/api/auth/france-connect/login/route.ts index 8efb73895..a4d77198a 100644 --- a/app/api/auth/france-connect/login/route.ts +++ b/app/api/auth/france-connect/login/route.ts @@ -2,7 +2,7 @@ import { FranceConnectAuthorizeUrl } from '#clients/authentication/france-connec import { logFatalErrorInSentry } from '#utils/sentry'; import withSession from '#utils/session/with-session'; import { NextResponse } from 'next/server'; -import { FranceConnectFailedException } from '../callback/route'; +import { FranceConnectFailedException } from '../france-connect-types'; export const GET = withSession(async function loginRoute(req) { try { diff --git a/app/api/auth/france-connect/logout-callback/route.ts b/app/api/auth/france-connect/logout-callback/route.ts index ef651cbdc..8e674e022 100644 --- a/app/api/auth/france-connect/logout-callback/route.ts +++ b/app/api/auth/france-connect/logout-callback/route.ts @@ -2,7 +2,7 @@ import logErrorInSentry from '#utils/sentry'; import { getPathFrom } from '#utils/session'; import withSession from '#utils/session/with-session'; import { NextResponse } from 'next/server'; -import { LogoutFailedException } from '../logout/route'; +import { FranceConnectLogoutFailedException } from '../france-connect-types'; export const GET = withSession(async function logoutCallbackRoute(req) { try { @@ -17,7 +17,7 @@ export const GET = withSession(async function logoutCallbackRoute(req) { return NextResponse.redirect('/connexion/au-revoir'); } } catch (e: any) { - logErrorInSentry(new LogoutFailedException({ cause: e })); + logErrorInSentry(new FranceConnectLogoutFailedException({ cause: e })); return NextResponse.redirect('/connexion/au-revoir'); } }); diff --git a/app/api/auth/france-connect/logout/route.ts b/app/api/auth/france-connect/logout/route.ts index df7819178..f57489537 100644 --- a/app/api/auth/france-connect/logout/route.ts +++ b/app/api/auth/france-connect/logout/route.ts @@ -1,9 +1,9 @@ import { franceConnectLogoutUrl } from '#clients/authentication/france-connect/strategy'; -import { Exception } from '#models/exceptions'; import logErrorInSentry from '#utils/sentry'; import { setPathFrom } from '#utils/session'; import withSession from '#utils/session/with-session'; import { NextResponse } from 'next/server'; +import { FranceConnectLogoutFailedException } from '../france-connect-types'; export const GET = withSession(async function logoutRoute(req) { try { @@ -14,16 +14,7 @@ export const GET = withSession(async function logoutRoute(req) { const url = await franceConnectLogoutUrl(req); return NextResponse.redirect(url); } catch (e: any) { - logErrorInSentry(new LogoutFailedException({ cause: e })); + logErrorInSentry(new FranceConnectLogoutFailedException({ cause: e })); return NextResponse.redirect('/connexion/au-revoir'); } }); - -export class LogoutFailedException extends Exception { - constructor(args: { cause?: any }) { - super({ - ...args, - name: 'LogoutFailedException', - }); - } -}