Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sealed trait GHPayload
- case class GHIssuePayload(...,...,...) extends GHPayload
- case class GHPRPayload(...,...,...) extends GHPayload
- case class GHPushPayload(...,...,...) extends GHPayload
- // implicits rules defined with validation API for case classes..
- val rule: Rule[JsValue, GHPayload] = From[JsValue] { __ =>
- import play.api.data.mapping.json.Rules._
- (__ \ "event").read[GHEvent].flatMap[GHPayload] {
- case GHEvent.issues => path.read[JsValue, GHIssuePayload].fmap(GHIssuePayload.apply _)
- case GHEvent.pull_request => path.read[JsValue, GHPRPayload].fmap(GHPRPayload.apply _)
- case GHEvent.push => path.read[JsValue, GHPushPayload].fmap(GHPushPayload.apply _)
- case _ => Rule(_ => typeFailure)
- }
- }
- rule.validate(payload)
- }
- // ERROR
- [error] /DATA/git/github-hooks/app/services/GHHandler.scala:44: type mismatch;
- [error] found : (String, models.GHModels.GHIssue, models.GHModels.GHLabels, models.GHModels.GHRepo, models.GHModels.GHUser) => models.GHModels.GHIssuePayload
- [error] required: models.GHModels.GHIssuePayload => models.GHModels.GHPayload
- [error] case GHEvent.issues => path.read[JsValue, GHIssuePayload].fmap(GHIssuePayload.apply _)
- [error] ^
- [error] /DATA/git/github-hooks/app/services/GHHandler.scala:45: type mismatch;
- [error] found : (String, Double, models.GHModels.GHPullRequest, models.GHModels.GHRepo, models.GHModels.GHUser) => models.GHModels.GHPRPayload
- [error] required: models.GHModels.GHPRPayload => models.GHModels.GHPayload
- [error] case GHEvent.pull_request => path.read[JsValue, GHPRPayload].fmap(GHPRPayload.apply _)
- [error] ^
- [error] /DATA/git/github-hooks/app/services/GHHandler.scala:46: type mismatch;
- [error] found : (String, String, String, Boolean, Boolean, Boolean, Option[String], String, List[models.GHModels.GHCommits], models.GHModels.GHCommits, models.GHModels.GHRepo, models.GHModels.GHOwner, models.GHModels.GHSender) => models.GHModels.GHPushPayload
- [error] required: models.GHModels.GHPushPayload => models.GHModels.GHPayload
- [error] case GHEvent.push => path.read[JsValue, GHPushPayload].fmap(GHPushPayload.apply _)
- [error] ^
- [error] three errors found
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement