From 75b109830013de056b81ace898d8c498af68a3e1 Mon Sep 17 00:00:00 2001 From: pm47 Date: Fri, 24 Jun 2016 09:54:50 +0200 Subject: [PATCH] used RawHeader class for custom headers --- .../scala/fr/acinq/eclair/api/Service.scala | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/eclair-demo/src/main/scala/fr/acinq/eclair/api/Service.scala b/eclair-demo/src/main/scala/fr/acinq/eclair/api/Service.scala index b0877dfad..11f3f4945 100644 --- a/eclair-demo/src/main/scala/fr/acinq/eclair/api/Service.scala +++ b/eclair-demo/src/main/scala/fr/acinq/eclair/api/Service.scala @@ -5,6 +5,7 @@ import java.net.InetSocketAddress import akka.actor.ActorRef import akka.http.scaladsl.model.HttpHeader.ParsingResult import akka.http.scaladsl.model._ +import akka.http.scaladsl.model.headers.RawHeader import akka.util.Timeout import akka.http.scaladsl.server.Directives._ import fr.acinq.bitcoin.BinaryData @@ -32,7 +33,9 @@ import org.jboss.netty.handler.codec.http.HttpHeaders */ case class JsonRPCBody(jsonrpc: String = "1.0", id: String = "scala-client", method: String, params: Seq[JValue]) + case class Error(code: Int, message: String) + case class JsonRPCRes(result: AnyRef, error: Option[Error], id: String) //TODO : use Json4sSupport ? @@ -43,9 +46,13 @@ trait Service extends Logging { implicit val formats = org.json4s.DefaultFormats + new BinaryDataSerializer + new StateSerializer + new Sha256Serializer + new ChannelDescSerializer implicit val timeout = Timeout(30 seconds) - def connect(addr: InetSocketAddress, amount: Long): Unit // amount in satoshis + def connect(addr: InetSocketAddress, amount: Long): Unit + + // amount in satoshis def register: ActorRef + def router: ActorRef + def paymentHandler: ActorRef def sendCommand(channel_id: String, cmd: Command): Future[String] = { @@ -55,15 +62,11 @@ trait Service extends Logging { }) } - val customHeaders = List( - HttpHeader.parse("Access-Control-Allow-Origin", "*"), - HttpHeader.parse("Access-Control-Allow-Headers", "Content-Type"), - HttpHeader.parse("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS"), - HttpHeader.parse("Cache-control", "public, no-store, max-age=0"), - HttpHeader.parse("Access-Control-Allow-Headers", "x-requested-with") - ).map { - case ParsingResult.Ok(header, _) => header - } + val customHeaders = RawHeader("Access-Control-Allow-Origin", "*") :: + RawHeader("Access-Control-Allow-Headers", "Content-Type") :: + RawHeader("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS") :: + RawHeader("Cache-control", "public, no-store, max-age=0") :: + RawHeader("Access-Control-Allow-Headers", "x-requested-with") :: Nil val route = pathSingleSlash { @@ -103,10 +106,10 @@ trait Service extends Logging { } onComplete(f_res) { - case Success(res) => complete(HttpResponse(StatusCodes.OK, headers= customHeaders, entity = HttpEntity(ContentTypes.`application/json`, Serialization.writePretty( + case Success(res) => complete(HttpResponse(StatusCodes.OK, headers = customHeaders, entity = HttpEntity(ContentTypes.`application/json`, Serialization.writePretty( JsonRPCRes(res, None, json.id) )))) - case Failure(t) => complete(HttpResponse(StatusCodes.InternalServerError, headers= customHeaders, entity = HttpEntity(ContentTypes.`application/json`, Serialization.writePretty( + case Failure(t) => complete(HttpResponse(StatusCodes.InternalServerError, headers = customHeaders, entity = HttpEntity(ContentTypes.`application/json`, Serialization.writePretty( JsonRPCRes(null, Some(Error(-1, t.getMessage)), json.id)) ))) }