Skip to content

Commit

Permalink
feat: extend request and router on boot
Browse files Browse the repository at this point in the history
  • Loading branch information
thetutlage committed Jul 28, 2019
1 parent f6e6fd0 commit 5032536
Showing 1 changed file with 38 additions and 11 deletions.
49 changes: 38 additions & 11 deletions providers/AppProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,25 @@
*/

import { env } from '@poppinss/env'
import { Hash } from '@poppinss/hash'
import { Logger } from '@poppinss/logger'
import { Config } from '@poppinss/config'
import { Emitter } from '@poppinss/events'
import { Request } from '@poppinss/request'
import { requireAll } from '@poppinss/utils'
import { IocContract } from '@adonisjs/fold'
import { Response } from '@poppinss/response'
import { Logger } from '@poppinss/logger'
import { requireAll } from '@poppinss/utils'
import { ApplicationContract } from '@poppinss/application'
import { Emitter } from '@poppinss/events'
import { Hash } from '@poppinss/hash'
import { Server, HttpContext, MiddlewareStore, Router, routePreProcessor } from '@poppinss/http-server'
import { Cors } from '../src/Middleware/Cors'

import { HttpExceptionHandler } from '../src/HttpExceptionHandler'
import { envLoader } from '../src/envLoader'
import { RequestLogger } from '../src/HttpHooks/RequestLogger'
import { Cors } from '../src/Middleware/Cors'
import { Encryption } from '../src/Encryption'
import extendRouter from '../src/Bindings/Route'
import { HealthCheck } from '../src/HealthCheck'
import extendRequest from '../src/Bindings/Request'
import { RequestLogger } from '../src/HttpHooks/RequestLogger'
import { HttpExceptionHandler } from '../src/HttpExceptionHandler'

/**
* The application provider that sticks all core components
Expand Down Expand Up @@ -150,7 +153,7 @@ export default class AppProvider {
})
}

/**
/**
* Registering the health check provider
*/
protected $registerHealthCheck () {
Expand All @@ -159,6 +162,16 @@ export default class AppProvider {
})
}

/**
* Registering the health check provider
*/
protected $registerEncryption () {
this.$container.singleton('Adonis/Core/Encryption', () => {
const Config = this.$container.use('Adonis/Core/Config')
return new Encryption(Config.get('app.appKey'))
})
}

/**
* Registering all required bindings to the container
*/
Expand All @@ -174,6 +187,7 @@ export default class AppProvider {
this.$registerEmitter()
this.$registerCorsMiddleware()
this.$registerHash()
this.$registerEncryption()
this.$registerHealthCheck()
}

Expand All @@ -186,11 +200,24 @@ export default class AppProvider {
/**
* Create a single instance of the logger and hook it as a `before` server hook.
*/
const requestLogData = this.$container.use('Adonis/Core/Config').get('app.http.requestLogData')
const logger = new RequestLogger({ logRequests, requestLogData })

this.$container.with(['Adonis/Core/Server'], (Server) => {
const requestLogData = this.$container.use('Adonis/Core/Config').get('app.http.requestLogData')
const logger = new RequestLogger({ logRequests, requestLogData })
Server.before(logger.onRequest.bind(logger))
})

/**
* Extending request class
*/
this.$container.with(['Adonis/Core/Request', 'Adonis/Core/Encryption'], (Request, Encryption) => {
extendRequest(Request, Encryption)
})

/**
* Extending router class
*/
this.$container.with(['Adonis/Core/Route', 'Adonis/Core/Encryption'], (Route, Encryption) => {
extendRouter(Route, Encryption)
})
}
}

0 comments on commit 5032536

Please sign in to comment.