package audit

import audit.Message.JsonWrites
import com.google.inject.Inject
import com.rabbitmq.client.ConnectionFactory
import play.api.Logger
import play.api.libs.json.Json.{stringify, toJson}
import utils.helpers.Config

final class AuditServiceImpl @Inject()(config: Config) extends AuditService {

  override def send(auditMessage: Message): Unit = {
    val factory = new ConnectionFactory()
    factory.setHost(config.rabbitmqHost)
    val connection = factory.newConnection() // TESTS NEED TO BE USING STUB SERVICE
    try {
      val channel = connection.createChannel()
      try {
        channel.queueDeclare(config.rabbitmqQueue, false, false, false, null)
        val message = messageToSend(auditMessage).getBytes
        channel.basicPublish("", config.rabbitmqQueue, null, message)
        Logger.debug(s"Sent Audit message: $message")
      } finally {
        channel.close()
      }
    } finally {
      connection.close()
    }
  }

  private def messageToSend(auditMessage: Message) = {
    val asJson = toJson(auditMessage)
    stringify(asJson)
  }
}
package audit

import audit.Message.JsonWrites
import com.google.inject.Inject
import com.rabbitmq.client.ConnectionFactory
import play.api.Logger
import play.api.libs.json.Json.{stringify, toJson}
import utils.helpers.Config

final class AuditServiceImpl @Inject()(config: Config) extends AuditService {

  override def send(auditMessage: Message): Unit = {
//    val factory = new ConnectionFactory()
//    factory.setHost(config.rabbitmqHost)
//    val connection = factory.newConnection() // TESTS NEED TO BE USING STUB SERVICE
//    try {
//      val channel = connection.createChannel()
//      try {
//        channel.queueDeclare(config.rabbitmqQueue, false, false, false, null)
//        val message = messageToSend(auditMessage).getBytes
//        channel.basicPublish("", config.rabbitmqQueue, null, message)
//        Logger.debug(s"Sent Audit message: $message")
//      } finally {
//        channel.close()
//      }
//    } finally {
//      connection.close()
//    }
    Logger.debug(s"Sent Audit message" + auditMessage)
  }

  private def messageToSend(auditMessage: Message) = {
    val asJson = toJson(auditMessage)
    stringify(asJson)
  }
}
--- 
+++ 
@@ -10,23 +10,22 @@
 final class AuditServiceImpl @Inject()(config: Config) extends AuditService {
 
   override def send(auditMessage: Message): Unit = {
-//    val factory = new ConnectionFactory()
-//    factory.setHost(config.rabbitmqHost)
-//    val connection = factory.newConnection() // TESTS NEED TO BE USING STUB SERVICE
-//    try {
-//      val channel = connection.createChannel()
-//      try {
-//        channel.queueDeclare(config.rabbitmqQueue, false, false, false, null)
-//        val message = messageToSend(auditMessage).getBytes
-//        channel.basicPublish("", config.rabbitmqQueue, null, message)
-//        Logger.debug(s"Sent Audit message: $message")
-//      } finally {
-//        channel.close()
-//      }
-//    } finally {
-//      connection.close()
-//    }
-    Logger.debug(s"Sent Audit message" + auditMessage)
+    val factory = new ConnectionFactory()
+    factory.setHost(config.rabbitmqHost)
+    val connection = factory.newConnection() // TESTS NEED TO BE USING STUB SERVICE
+    try {
+      val channel = connection.createChannel()
+      try {
+        channel.queueDeclare(config.rabbitmqQueue, false, false, false, null)
+        val message = messageToSend(auditMessage).getBytes
+        channel.basicPublish("", config.rabbitmqQueue, null, message)
+        Logger.debug(s"Sent Audit message: $message")
+      } finally {
+        channel.close()
+      }
+    } finally {
+      connection.close()
+    }
   }
 
   private def messageToSend(auditMessage: Message) = {
Revert "US1496: Comment out code that equires rabbitmq to be installed and running"

This reverts commit 5bb9891a7b92b4a14fce014fd7a3b096666de1dd.
