forked from 47degrees/github4s
/
Encoders.scala
71 lines (63 loc) · 3.3 KB
/
Encoders.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
* Copyright 2016-2020 47 Degrees, LLC. <http://www.47deg.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package github4s
import github4s.domain._
import io.circe._
import io.circe.syntax._
import io.circe.generic.auto._
import io.circe.generic.semiauto.deriveEncoder
object Encoders {
implicit val encodeTreeData: Encoder[TreeData] = Encoder.instance {
case d: TreeDataSha => d.asJson
case d: TreeDataBlob => d.asJson
}
implicit val encodeNewPullRequest: Encoder[CreatePullRequest] = Encoder.instance {
case d: CreatePullRequestData => d.asJson
case d: CreatePullRequestIssue => d.asJson
}
implicit val encodePrrStatus: Encoder[PullRequestReviewState] =
Encoder.encodeString.contramap(_.value)
implicit val encodeEditGistFile: Encoder[EditGistFile] = {
deriveEncoder[EditGistFile].mapJsonObject(
_.filter(e => !(e._1.equals("filename") && e._2.isNull))
)
}
implicit val encoderCommiter: Encoder[Committer] = deriveEncoder[Committer]
implicit val encoderDeleteFileRequest: Encoder[DeleteFileRequest] =
deriveEncoder[DeleteFileRequest]
implicit val encoderWriteFileContentRequest: Encoder[WriteFileRequest] =
deriveEncoder[WriteFileRequest]
implicit val encoderCreateReferenceRequest: Encoder[CreateReferenceRequest] =
deriveEncoder[CreateReferenceRequest]
implicit val encoderNewCommitRequest: Encoder[NewCommitRequest] = deriveEncoder[NewCommitRequest]
implicit val encoderNewBlobRequest: Encoder[NewBlobRequest] = deriveEncoder[NewBlobRequest]
implicit val encoderNewTreeRequest: Encoder[NewTreeRequest] = deriveEncoder[NewTreeRequest]
implicit val encoderNewTagRequest: Encoder[NewTagRequest] = deriveEncoder[NewTagRequest]
implicit val encoderUpdateReferenceRequest: Encoder[UpdateReferenceRequest] =
deriveEncoder[UpdateReferenceRequest]
implicit val encoderSubscriptionRequest: Encoder[SubscriptionRequest] =
deriveEncoder[SubscriptionRequest]
implicit val encoderNewAuthRequest: Encoder[NewAuthRequest] = deriveEncoder[NewAuthRequest]
implicit val encoderNewOAuthRequest: Encoder[NewOAuthRequest] = deriveEncoder[NewOAuthRequest]
implicit val encoderNewGistRequest: Encoder[NewGistRequest] = deriveEncoder[NewGistRequest]
implicit val encoderEditGistRequest: Encoder[EditGistRequest] = deriveEncoder[EditGistRequest]
implicit val encoderNewIssueRequest: Encoder[NewIssueRequest] = deriveEncoder[NewIssueRequest]
implicit val encoderEditIssueRequest: Encoder[EditIssueRequest] = deriveEncoder[EditIssueRequest]
implicit val encoderCommentData: Encoder[CommentData] = deriveEncoder[CommentData]
implicit val encoderNewReleaseRequest: Encoder[NewReleaseRequest] =
deriveEncoder[NewReleaseRequest]
implicit val encoderNewStatusRequest: Encoder[NewStatusRequest] = deriveEncoder[NewStatusRequest]
}