From bbb678b839325628b96aaa7f74f0f76a0a2f8f64 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Tue, 24 Jun 2014 01:38:57 -0700 Subject: simplify --- .../server/GitHubIssuesWebHooksDirectives.scala | 23 ---------------------- .../GitHubPullRequestWebHooksDirectives.scala | 23 ++++++++++++++++++++++ .../getbootstrap/rorschach/server/Settings.scala | 8 +++----- .../com/getbootstrap/rorschach/util/package.scala | 19 ------------------ 4 files changed, 26 insertions(+), 47 deletions(-) delete mode 100644 src/main/scala/com/getbootstrap/rorschach/server/GitHubIssuesWebHooksDirectives.scala create mode 100644 src/main/scala/com/getbootstrap/rorschach/server/GitHubPullRequestWebHooksDirectives.scala (limited to 'src') diff --git a/src/main/scala/com/getbootstrap/rorschach/server/GitHubIssuesWebHooksDirectives.scala b/src/main/scala/com/getbootstrap/rorschach/server/GitHubIssuesWebHooksDirectives.scala deleted file mode 100644 index f8ea9cb..0000000 --- a/src/main/scala/com/getbootstrap/rorschach/server/GitHubIssuesWebHooksDirectives.scala +++ /dev/null @@ -1,23 +0,0 @@ -package com.getbootstrap.rorschach.server - -import com.getbootstrap.rorschach.github.{IssueOrCommentEvent, GitHubJsonProtocol} -import scala.util.{Success, Failure, Try} -import spray.json._ -import spray.routing.{Directive1, ValidationRejection} -import spray.routing.directives.{BasicDirectives, RouteDirectives} - -trait GitHubIssuesWebHooksDirectives { - import RouteDirectives.reject - import BasicDirectives.provide - import HubSignatureDirectives.stringEntityMatchingHubSignature - import GitHubJsonProtocol._ - - def authenticatedIssueOrCommentEvent(secretKey: Array[Byte]): Directive1[IssueOrCommentEvent] = stringEntityMatchingHubSignature(secretKey).flatMap{ entityJsonString => - Try{ entityJsonString.parseJson.convertTo[IssueOrCommentEvent] } match { - case Failure(err) => reject(ValidationRejection("JSON either malformed or does not match expected schema!")) - case Success(event) => provide(event) - } - } -} - -object GitHubIssuesWebHooksDirectives extends GitHubIssuesWebHooksDirectives diff --git a/src/main/scala/com/getbootstrap/rorschach/server/GitHubPullRequestWebHooksDirectives.scala b/src/main/scala/com/getbootstrap/rorschach/server/GitHubPullRequestWebHooksDirectives.scala new file mode 100644 index 0000000..f8ea9cb --- /dev/null +++ b/src/main/scala/com/getbootstrap/rorschach/server/GitHubPullRequestWebHooksDirectives.scala @@ -0,0 +1,23 @@ +package com.getbootstrap.rorschach.server + +import com.getbootstrap.rorschach.github.{IssueOrCommentEvent, GitHubJsonProtocol} +import scala.util.{Success, Failure, Try} +import spray.json._ +import spray.routing.{Directive1, ValidationRejection} +import spray.routing.directives.{BasicDirectives, RouteDirectives} + +trait GitHubIssuesWebHooksDirectives { + import RouteDirectives.reject + import BasicDirectives.provide + import HubSignatureDirectives.stringEntityMatchingHubSignature + import GitHubJsonProtocol._ + + def authenticatedIssueOrCommentEvent(secretKey: Array[Byte]): Directive1[IssueOrCommentEvent] = stringEntityMatchingHubSignature(secretKey).flatMap{ entityJsonString => + Try{ entityJsonString.parseJson.convertTo[IssueOrCommentEvent] } match { + case Failure(err) => reject(ValidationRejection("JSON either malformed or does not match expected schema!")) + case Success(event) => provide(event) + } + } +} + +object GitHubIssuesWebHooksDirectives extends GitHubIssuesWebHooksDirectives diff --git a/src/main/scala/com/getbootstrap/rorschach/server/Settings.scala b/src/main/scala/com/getbootstrap/rorschach/server/Settings.scala index 770f52e..1b47482 100644 --- a/src/main/scala/com/getbootstrap/rorschach/server/Settings.scala +++ b/src/main/scala/com/getbootstrap/rorschach/server/Settings.scala @@ -1,6 +1,5 @@ package com.getbootstrap.rorschach.server -import scala.collection.JavaConversions._ import com.typesafe.config.Config import akka.actor.ActorSystem import akka.actor.Extension @@ -11,10 +10,9 @@ import akka.util.ByteString import com.getbootstrap.rorschach.util.Utf8String class SettingsImpl(config: Config) extends Extension { - val RepoFullNames: Set[String] = config.getStringList("lmvtfy.github-repos-to-watch").toSet - val BotUsername: String = config.getString("lmvtfy.username") - val BotPassword: String = config.getString("lmvtfy.password") - val WebHookSecretKey: ByteString = ByteString(config.getString("lmvtfy.web-hook-secret-key").utf8Bytes) + val BotUsername: String = config.getString("rorschach.username") + val BotPassword: String = config.getString("rorschach.password") + val WebHookSecretKey: ByteString = ByteString(config.getString("rorschach.web-hook-secret-key").utf8Bytes) } object Settings extends ExtensionId[SettingsImpl] with ExtensionIdProvider { override def lookup() = Settings diff --git a/src/main/scala/com/getbootstrap/rorschach/util/package.scala b/src/main/scala/com/getbootstrap/rorschach/util/package.scala index 1271047..0768e9f 100644 --- a/src/main/scala/com/getbootstrap/rorschach/util/package.scala +++ b/src/main/scala/com/getbootstrap/rorschach/util/package.scala @@ -1,9 +1,7 @@ package com.getbootstrap.rorschach import java.nio.charset.Charset -import scala.collection.mutable import scala.util.Try -import spray.http.Uri package object util { private val utf8 = Charset.forName("UTF-8") @@ -15,21 +13,4 @@ package object util { implicit class Utf8ByteArray(bytes: Array[Byte]) { def utf8String: Try[String] = Try { new String(bytes, utf8) } } - - implicit class RichStack[T](stack: mutable.Stack[T]) { - def popOption(): Option[T] = Try{ stack.pop() }.toOption - def topOption: Option[T] = Try{ stack.top }.toOption - } - - implicit class RichUri(uri: Uri) { - import spray.http.Uri.NamedHost - import spray.http.Uri.Query.{Empty=>EmptyQuery} - - def isHttp = uri.scheme == "http" || uri.scheme == "https" - def lacksUserInfo = uri.authority.userinfo.isEmpty - def lacksNonDefaultPort = uri.authority.port <= 0 - def hasNamedHost = uri.authority.host.isInstanceOf[NamedHost] - def isSafe = uri.isHttp && uri.lacksUserInfo && uri.hasNamedHost && uri.lacksNonDefaultPort && uri.isAbsolute - def withoutQuery = uri.withQuery(EmptyQuery) - } } -- cgit v1.2.3