Skip to content

Commit

Permalink
alerts-server: Create AvailabilityFilter
Browse files Browse the repository at this point in the history
Now we can reject incoming requests when the application is shutting down.
  • Loading branch information
AlexITC committed Jan 18, 2018
1 parent d4879bc commit 8c6a529
Showing 1 changed file with 32 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.alexitc.coinalerts.filters

import javax.inject.Inject

import akka.stream.Materializer
import com.alexitc.coinalerts.core.ShutdownHandler
import org.slf4j.LoggerFactory
import play.api.mvc.{Filter, RequestHeader, Result, Results}

import scala.concurrent.Future

/**
* Allow us to reject incoming requests when the application is shutting down.
*/
class AvailabilityFilter @Inject() (
shutdownHandler: ShutdownHandler,
implicit val mat: Materializer)
extends Filter {

private val logger = LoggerFactory.getLogger(this.getClass)

def apply(nextFilter: RequestHeader => Future[Result])
(requestHeader: RequestHeader): Future[Result] = {

if (shutdownHandler.isShuttingDown) {
logger.info("Rejecting request because we are shutting down")
Future.successful(Results.ServiceUnavailable)
} else {
nextFilter(requestHeader)
}
}
}

0 comments on commit 8c6a529

Please sign in to comment.