From b979764e063f85a09008359b9b25f74a439f8e48 Mon Sep 17 00:00:00 2001 From: Alex Rimmer <31283208+AlexRimmerHMRC@users.noreply.github.com> Date: Mon, 23 Oct 2023 12:36:13 +0100 Subject: [PATCH] ITSASU-2665 - Add old throttle repository which will drop the collection on start up --- app/Module.scala | 12 ++++- app/repositories/OldThrottleRepository.scala | 47 ++++++++++++++++++++ conf/logback.xml | 4 +- 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 app/repositories/OldThrottleRepository.scala diff --git a/app/Module.scala b/app/Module.scala index d888ddd2..ef765674 100644 --- a/app/Module.scala +++ b/app/Module.scala @@ -16,7 +16,10 @@ import com.google.inject.AbstractModule import config.AppConfig -import repositories.{LockoutMongoRepository, SubscriptionDataRepository, ThrottlingRepository} +import repositories.{LockoutMongoRepository, OldThrottleRepository, SubscriptionDataRepository, ThrottlingRepository} + +import javax.inject.{Inject, Singleton} +import scala.concurrent.ExecutionContext class Module extends AbstractModule { @@ -25,6 +28,13 @@ class Module extends AbstractModule { bind(classOf[SubscriptionDataRepository]).asEagerSingleton() bind(classOf[LockoutMongoRepository]).asEagerSingleton() bind(classOf[ThrottlingRepository]).asEagerSingleton() + bind(classOf[OldThrottleRepository]).asEagerSingleton() + bind(classOf[AppStart]).asEagerSingleton() } } + +@Singleton +class AppStart @Inject()(oldThrottleRepository: OldThrottleRepository)(implicit ec: ExecutionContext) { + oldThrottleRepository.drop() +} \ No newline at end of file diff --git a/app/repositories/OldThrottleRepository.scala b/app/repositories/OldThrottleRepository.scala new file mode 100644 index 00000000..94ff56a5 --- /dev/null +++ b/app/repositories/OldThrottleRepository.scala @@ -0,0 +1,47 @@ +/* + * Copyright 2023 HM Revenue & Customs + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package repositories + +import config.AppConfig +import play.api.libs.json.{Format, JsObject} +import uk.gov.hmrc.mongo.MongoComponent +import uk.gov.hmrc.mongo.play.json.PlayMongoRepository + +import javax.inject.{Inject, Singleton} +import scala.concurrent.{ExecutionContext, Future} + +@Singleton +class OldThrottleRepositoryConfig @Inject()(val appConfig: AppConfig) { + + def mongoComponent: MongoComponent = MongoComponent(appConfig.mongoUri) + +} + +@Singleton +class OldThrottleRepository @Inject()(config: OldThrottleRepositoryConfig)(implicit ec: ExecutionContext) + extends PlayMongoRepository[JsObject]( + collectionName = "throttle", + mongoComponent = config.mongoComponent, + domainFormat = implicitly[Format[JsObject]], + indexes = Seq.empty + ) { + + def drop(): Future[Void] = { + collection.drop().toFuture() + } + +} diff --git a/conf/logback.xml b/conf/logback.xml index f14f00f8..ef80afae 100644 --- a/conf/logback.xml +++ b/conf/logback.xml @@ -53,13 +53,13 @@ - + - +