Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. sealed trait GHPayload
  2. case class GHIssuePayload(...,...,...) extends GHPayload
  3. case class GHPRPayload(...,...,...) extends GHPayload
  4. case class GHPushPayload(...,...,...) extends GHPayload
  5.  
  6. // implicits rules defined with validation API for case classes..
  7.  
  8. val rule: Rule[JsValue, GHPayload] = From[JsValue] { __ =>
  9. import play.api.data.mapping.json.Rules._
  10.  
  11. (__ \ "event").read[GHEvent].flatMap[GHPayload] {
  12. case GHEvent.issues => path.read[JsValue, GHIssuePayload].fmap(GHIssuePayload.apply _)
  13. case GHEvent.pull_request => path.read[JsValue, GHPRPayload].fmap(GHPRPayload.apply _)
  14. case GHEvent.push => path.read[JsValue, GHPushPayload].fmap(GHPushPayload.apply _)
  15. case _ => Rule(_ => typeFailure)
  16. }
  17. }
  18. rule.validate(payload)
  19. }
  20.  
  21. // ERROR
  22. [error] /DATA/git/github-hooks/app/services/GHHandler.scala:44: type mismatch;
  23. [error] found : (String, models.GHModels.GHIssue, models.GHModels.GHLabels, models.GHModels.GHRepo, models.GHModels.GHUser) => models.GHModels.GHIssuePayload
  24. [error] required: models.GHModels.GHIssuePayload => models.GHModels.GHPayload
  25. [error] case GHEvent.issues => path.read[JsValue, GHIssuePayload].fmap(GHIssuePayload.apply _)
  26. [error] ^
  27. [error] /DATA/git/github-hooks/app/services/GHHandler.scala:45: type mismatch;
  28. [error] found : (String, Double, models.GHModels.GHPullRequest, models.GHModels.GHRepo, models.GHModels.GHUser) => models.GHModels.GHPRPayload
  29. [error] required: models.GHModels.GHPRPayload => models.GHModels.GHPayload
  30. [error] case GHEvent.pull_request => path.read[JsValue, GHPRPayload].fmap(GHPRPayload.apply _)
  31. [error] ^
  32. [error] /DATA/git/github-hooks/app/services/GHHandler.scala:46: type mismatch;
  33. [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
  34. [error] required: models.GHModels.GHPushPayload => models.GHModels.GHPayload
  35. [error] case GHEvent.push => path.read[JsValue, GHPushPayload].fmap(GHPushPayload.apply _)
  36. [error] ^
  37. [error] three errors found
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement