From 5f5fe9436da740b73f909f8ea78fbd52c6410eb3 Mon Sep 17 00:00:00 2001
From: Richard Alam <ritzalam@gmail.com>
Date: Thu, 13 Feb 2020 13:38:41 -0800
Subject: [PATCH]  - cleanup

---
 .../voice/freeswitch/ESLEventListener.java    |  1 +
 .../scala/org/bigbluebutton/ApiService.scala  | 32 +++++++++----------
 .../main/scala/org/bigbluebutton/Boot.scala   |  7 ----
 .../service/HealthzService.scala              |  4 +--
 4 files changed, 17 insertions(+), 27 deletions(-)

diff --git a/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java b/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java
index 40109b9d76..a6a4e60a0c 100755
--- a/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java
+++ b/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java
@@ -292,6 +292,7 @@ public class ESLEventListener implements IEslEventListener {
             String json = gson.toJson(event.getEventHeaders());
             //log.info(json);
 
+            log.info("Received Heartbeat from Freeswitch.");
             Map<String, String> headers = event.getEventHeaders();
 
             Map<String, String> hb = new HashMap<String, String>();
diff --git a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/ApiService.scala b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/ApiService.scala
index 7df02361d5..297d073702 100755
--- a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/ApiService.scala
+++ b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/ApiService.scala
@@ -1,19 +1,20 @@
 package org.bigbluebutton
 
-import scala.concurrent.ExecutionContext
 import akka.http.scaladsl.model._
-import akka.actor.ActorSystem
 import akka.http.scaladsl.server.Directives._
-import akka.pattern.AskTimeoutException
-import akka.stream.Materializer
-import com.google.gson.Gson
-import org.bigbluebutton.service.{ GetHealthResponseMessage, HealthzService }
+import org.bigbluebutton.service.{ HealthzService }
+import spray.json.DefaultJsonProtocol
+import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport
 
-import scala.collection.JavaConverters._
-import scala.collection.mutable
-import scala.util.{ Failure, Success }
+case class HealthResponse(isHealthy: Boolean)
+case class StatusResponse(status: Array[String], heartbeat: Map[String, String])
 
-class ApiService(healthz: HealthzService)(implicit executor: ExecutionContext, as: ActorSystem, mat: Materializer) {
+trait JsonSupport extends SprayJsonSupport with DefaultJsonProtocol {
+  implicit val healthResponseFormat = jsonFormat1(HealthResponse)
+  implicit val statusResponseFormat = jsonFormat2(StatusResponse)
+}
+
+class ApiService(healthz: HealthzService) extends JsonSupport {
 
   def routes =
     path("healthz") {
@@ -22,11 +23,9 @@ class ApiService(healthz: HealthzService)(implicit executor: ExecutionContext, a
         onSuccess(future) {
           case res =>
             if (res.isHealthy) {
-              val gson = new Gson
-              complete(StatusCodes.OK, HttpEntity(ContentTypes.`application/json`, gson.toJson(res)))
+              complete(StatusCodes.Created, HealthResponse(res.isHealthy))
             } else {
-              val gson = new Gson
-              complete(StatusCodes.ServiceUnavailable, HttpEntity(ContentTypes.`application/json`, gson.toJson(res)))
+              complete(StatusCodes.ServiceUnavailable, HealthResponse(res.isHealthy))
             }
         }
       }
@@ -36,9 +35,8 @@ class ApiService(healthz: HealthzService)(implicit executor: ExecutionContext, a
           val future = healthz.getFreeswitchStatus()
           onSuccess(future) {
             case res =>
-              val gson = new Gson()
-              val response = Map("status" -> res.status, "heartbeat" -> res.heartbeat.asJava)
-              complete(StatusCodes.OK, HttpEntity(ContentTypes.`application/json`, gson.toJson(response.asJava)))
+              val response = StatusResponse(res.status, res.heartbeat)
+              complete(StatusCodes.OK, response)
           }
         }
       }
diff --git a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/Boot.scala b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/Boot.scala
index 7dd5b292ef..9e3c476969 100755
--- a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/Boot.scala
+++ b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/Boot.scala
@@ -68,11 +68,4 @@ object Boot extends App with SystemConfiguration with WebApi {
 
   val bindingFuture = Http().bindAndHandle(apiService.routes, httpHost, httpPort)
 
-  println(s"Server online at $httpHost:$httpPort/\nPress RETURN to stop...")
-  /*
-  bindingFuture
-    .flatMap(_.unbind()) // trigger unbinding from the port
-    .onComplete(_ => system.terminate()) // and shutdown when done
-
- */
 }
diff --git a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/service/HealthzService.scala b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/service/HealthzService.scala
index e6b41e9eea..448e57c132 100755
--- a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/service/HealthzService.scala
+++ b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/service/HealthzService.scala
@@ -2,11 +2,10 @@ package org.bigbluebutton.service
 
 import java.text.SimpleDateFormat
 
-import akka.actor.{ Actor, ActorContext, ActorLogging, Props }
+import akka.actor.{ Actor, ActorLogging, Props }
 import akka.actor.ActorSystem
 import akka.pattern.{ AskTimeoutException, ask }
 import akka.util.Timeout
-import com.google.gson.Gson
 
 import scala.concurrent.duration._
 import scala.concurrent.Future
@@ -72,7 +71,6 @@ class HealthzActor extends Actor
 
   def receive = {
     case msg: FreeswitchStatusMessage =>
-      val gson = new Gson()
       val now = System.currentTimeMillis()
       status = FreeswitchStatus(now, sdf.format(now), msg.status)
     case msg: FreeswitchHeartbeatMessage =>
-- 
GitLab