Skip to content

Commit

Permalink
Fix all the style issues it brought up
Browse files Browse the repository at this point in the history
  • Loading branch information
davidhollis committed Aug 24, 2020
1 parent e4cdcac commit 3bf6fcb
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 21 deletions.
4 changes: 2 additions & 2 deletions core/src/main/scala/compose/http/Headers.scala
Expand Up @@ -34,7 +34,7 @@ case class Headers(

def add(pairs: (String, String)*): Headers =
Headers((this.iterator ++ pairs).toSeq: _*)

def add(other: Headers): Headers =
Headers((this.iterator ++ other.iterator).toSeq: _*)

Expand Down Expand Up @@ -68,4 +68,4 @@ object Headers {
)

def formatKey(key: String): String = key.split("-").map(_.capitalize).mkString("-")
}
}
2 changes: 1 addition & 1 deletion core/src/main/scala/compose/http/Method.scala
Expand Up @@ -22,4 +22,4 @@ object Method {

def unapply(methodStr: String): Option[Method] =
byName.get(methodStr.toUpperCase)
}
}
2 changes: 1 addition & 1 deletion core/src/main/scala/compose/http/Request.scala
Expand Up @@ -76,4 +76,4 @@ object Request {
heading.toString()
}
}
}
}
11 changes: 7 additions & 4 deletions core/src/main/scala/compose/http/RequestTarget.scala
Expand Up @@ -9,7 +9,7 @@ import io.lemonlabs.uri.{
UserInfo,
Host,
UrlPath,
QueryString,
QueryString
}
import io.lemonlabs.uri.encoding.percentEncode

Expand All @@ -23,8 +23,11 @@ object RequestTarget {
urlPath,
QueryString(
queryParams.iterator.flatMap { case (key, valueSeq) =>
if (valueSeq.isEmpty) Seq(key -> None)
else valueSeq.map(value => (key -> Some(value)))
if (valueSeq.isEmpty) {
Seq(key -> None)
} else {
valueSeq.map(value => (key -> Some(value)))
}
}.toVector
),
None,
Expand Down Expand Up @@ -72,4 +75,4 @@ object RequestTarget {
}
}
}
}
}
2 changes: 1 addition & 1 deletion core/src/main/scala/compose/http/Response.scala
Expand Up @@ -53,4 +53,4 @@ object Response {
case class Success(defaultHeaders: Headers, bodyStream: InputStream) extends Result
case class Failure(errorMessage: String) extends Result
}
}
}
7 changes: 6 additions & 1 deletion core/src/main/scala/compose/http/Status.scala
Expand Up @@ -4,6 +4,10 @@ sealed abstract class Status(val code: Int, val reasonPhrase: String) {
override lazy val toString: String = s"$code $reasonPhrase"
}

// scalastyle:off magic.number number.of.methods number.of.types
// magic.number : All these numbers are HTTP status codes. They don't need dedicated constants.
// number.of.methods : No sense in breaking this up into multiple files. It's just a big long list of statuses.
// number.of.types : This is triggered by the same pattern that hit number.of.methods and is ignored for the same reason.
object Status {
// 1xx: Informational statuses
case object Continue extends Status(100, "Continue")
Expand Down Expand Up @@ -77,4 +81,5 @@ object Status {
case object NotExtended extends Status(510, "Not Extended")
case object NetworkAuthenticationRequired extends Status(511, "Network Authentication Required")
case object NetworkConnectTimeoutError extends Status(599, "Network Connect Timeout Error")
}
}
// scalastyle:on magic.number number.of.methods number.of.types
3 changes: 3 additions & 0 deletions core/src/main/scala/compose/http/Version.scala
Expand Up @@ -7,10 +7,13 @@ sealed abstract class Version(val number: Float) {
}

object Version {
// scalastyle:off object.name
// object.name : These object names don't fit the conventional naming scheme, but there's no good way to CamelCase them
object HTTP_0_9 extends Version(0.9f)
object HTTP_1_0 extends Version(1.0f)
object HTTP_1_1 extends Version(1.1f)
object HTTP_2_0 extends Version(2.0f)
// scalastyle:on object.name

lazy val byNumber: Map[Float, Version] = Map(
(for { v <- Seq(HTTP_0_9, HTTP_1_0, HTTP_1_1, HTTP_2_0) } yield (v.number -> v)): _*
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/compose/rendering/implicits.scala
Expand Up @@ -20,4 +20,4 @@ object implicits {
}
})
implicit val stringRenderer: Renderer[String] = encodedStringRenderer("UTF-8")
}
}
18 changes: 12 additions & 6 deletions core/src/main/scala/compose/server/SimpleDevelopmentServer.scala
Expand Up @@ -25,10 +25,10 @@ case class SimpleDevelopmentServer(config: Config) extends Server with StrictLog
}
def apply(application: Application[InputStream]): Unit = {
val socket = new ServerSocket(
serverConfig.getAs[Int]("port").getOrElse(8090),
serverConfig.getAs[Int]("backlog").getOrElse(16),
serverConfig.getAs[Int]("port").getOrElse(SimpleDevelopmentServer.Defaults.portNumber),
serverConfig.getAs[Int]("backlog").getOrElse(SimpleDevelopmentServer.Defaults.backlog),
InetAddress.getByName(
serverConfig.getAs[String]("host").getOrElse("127.0.0.1")
serverConfig.getAs[String]("host").getOrElse(SimpleDevelopmentServer.Defaults.host)
),
)
logger.info(s"Listening on ${socket.getInetAddress()}:${socket.getLocalPort()}")
Expand All @@ -44,7 +44,7 @@ case class SimpleDevelopmentServer(config: Config) extends Server with StrictLog
application(request)
}
case None => {
logger.info(s"Received bad request.")
logger.info("Received bad request.")
SimpleDevelopmentServer.badRequestResponse
}
}.onComplete { reponseOrError =>
Expand All @@ -70,6 +70,12 @@ case class SimpleDevelopmentServer(config: Config) extends Server with StrictLog
}

object SimpleDevelopmentServer {
object Defaults {
val portNumber: Int = 8090
val backlog: Int = 16
val host: String = "127.0.0.1"
}

def internalServerErrorResponse(err: Throwable): Response = {
val errBody = serializeError(err)
Response[String](
Expand All @@ -95,7 +101,7 @@ object SimpleDevelopmentServer {
} yield s" at ${line.toString()}\n").mkString
val causes =
Option[Throwable](err.getCause())
.map(renderThrowable(_, false))
.map(renderThrowable(_, root=false))
.getOrElse("")
base + trace + causes
}
Expand All @@ -108,4 +114,4 @@ object SimpleDevelopmentServer {
status = Status.BadRequest,
)
)
}
}
7 changes: 3 additions & 4 deletions demos/src/main/scala/compose/demos/greetings.scala
Expand Up @@ -10,10 +10,9 @@ import compose.Application
import compose.http.{Request, Response, Method, Status, Headers, Version, RequestTarget}
import compose.rendering.implicits._
import compose.server.SimpleDevelopmentServer
import compose.Server

class GreetingsApplication(greeting: String) extends Application[AnyRef] {
import Version.HTTP_1_1

private val greetingPath = """^/greet/(.*)$""".r

def apply(request: Request[AnyRef]): Future[Response] = request match {
Expand All @@ -32,7 +31,7 @@ class GreetingsApplication(greeting: String) extends Application[AnyRef] {
}

object GreetingsDemo extends scala.App with StrictLogging {
val server = SimpleDevelopmentServer(
def server: Server = SimpleDevelopmentServer(
ConfigFactory.parseString("""
compose.server {
host = "127.0.0.1"
Expand All @@ -50,4 +49,4 @@ object GreetingsDemo extends scala.App with StrictLogging {
logger.info(s"Loaded greeting: ${greeting}")
new GreetingsApplication(greeting)
}
}
}

0 comments on commit 3bf6fcb

Please sign in to comment.