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 @@
-
+
-
+