/* |-------------------------------------------------------------------------- | Http Exception Handler |-------------------------------------------------------------------------- | | AdonisJs will forward all exceptions occurred during an HTTP request to | the following class. You can learn more about exception handling by | reading docs. | | The exception handler extends a base `HttpExceptionHandler` which is not | mandatory, however it can do lot of heavy lifting to handle the errors | properly. | */ import Logger from '@ioc:Adonis/Core/Logger' import HttpExceptionHandler from '@ioc:Adonis/Core/HttpExceptionHandler' import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' export default class ExceptionHandler extends HttpExceptionHandler { protected statusPages = { '403': 'errors/unauthorized', '404': 'errors/not-found', '500..599': 'errors/server-error', } constructor() { super(Logger) } public async handle(error: any, ctx: HttpContextContract) { const { session, response } = ctx; /** * Handle failed authentication attempt */ if (['E_INVALID_AUTH_PASSWORD', 'E_INVALID_AUTH_UID'].includes(error.code)) { session.flash('login', { error: error.message }); return response.redirect().back(); } /** * Forward rest of the exceptions to the parent class */ return super.handle(error, ctx); } }