mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2025-12-08 19:05:54 +00:00
append all pr events
This commit is contained in:
parent
8570200218
commit
0b4ebe6cbc
@ -48,12 +48,9 @@ class GetPullRequestTimelineUseCase @Inject constructor(
|
||||
timeline.pageInfo.isHasNextPage, timeline.pageInfo.isHasPreviousPage
|
||||
)
|
||||
/**
|
||||
* [ISSUE_COMMENT, CLOSED_EVENT, REOPENED_EVENT, REFERENCED_EVENT, ASSIGNED_EVENT,
|
||||
UNASSIGNED_EVENT, LABELED_EVENT, UNLABELED_EVENT, MILESTONED_EVENT, DEMILESTONED_EVENT, RENAMED_TITLE_EVENT,
|
||||
LOCKED_EVENT, UNLOCKED_EVENT, TRANSFERRED_EVENT, PULL_REQUEST_COMMIT, PULL_REQUEST_COMMIT_COMMENT_THREAD,
|
||||
PULL_REQUEST_REVIEW, PULL_REQUEST_REVIEW_THREAD, HEAD_REF_DELETED_EVENT, HEAD_REF_FORCE_PUSHED_EVENT,
|
||||
MERGED_EVENT, MERGED_EVENT, REVIEW_DISMISSED_EVENT, REVIEW_REQUESTED_EVENT,
|
||||
REVIEW_REQUEST_REMOVED_EVENT, READY_FOR_REVIEW_EVENT]
|
||||
*
|
||||
PULL_REQUEST_COMMIT, PULL_REQUEST_COMMIT_COMMENT_THREAD,
|
||||
PULL_REQUEST_REVIEW, PULL_REQUEST_REVIEW_THREAD,]
|
||||
*/
|
||||
timeline.nodes?.forEach { node ->
|
||||
when (node) {
|
||||
@ -91,13 +88,86 @@ class GetPullRequestTimelineUseCase @Inject constructor(
|
||||
is AsHeadRefDeletedEvent -> list.add(getHeadRefDeleted(node))
|
||||
is AsReviewRequestedEvent -> list.add(getRequestForReview(node))
|
||||
is AsReviewDismissedEvent -> list.add(getDismissedReview(node))
|
||||
is AsReviewRequestRemovedEvent -> list.add(getReviewRemoved(node))
|
||||
is AsPullRequestReview -> list.add(getPullRequestReview(node))
|
||||
is AsPullRequestCommit -> list.add(getPullRequestCommit(node))
|
||||
}
|
||||
}
|
||||
return@map Pair(pageInfo, list)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getDismissedReview(node: AsReviewDismissedEvent): TimelineModel = TimelineModel(
|
||||
private fun getPullRequestReview(node: AsPullRequestReview) = TimelineModel(
|
||||
review = ReviewModel(
|
||||
node.id,
|
||||
node.databaseId,
|
||||
ShortUserModel(node.author?.login, node.author?.login, node.author?.url?.toString(), avatarUrl = node.author?.avatarUrl?.toString()),
|
||||
node.body,
|
||||
node.authorAssociation.rawValue(),
|
||||
node.state.rawValue(),
|
||||
node.createdAt,
|
||||
node.comments.nodes?.map {
|
||||
ReviewComment(
|
||||
ShortUserModel(
|
||||
it.author?.login,
|
||||
it.author?.login,
|
||||
it.author?.url?.toString(),
|
||||
avatarUrl = it.author?.avatarUrl.toString()
|
||||
),
|
||||
ShortUserModel(
|
||||
it.replyTo?.author?.login,
|
||||
it.replyTo?.author?.login,
|
||||
it.replyTo?.author?.url?.toString(),
|
||||
avatarUrl = it.replyTo?.author?.avatarUrl.toString()
|
||||
),
|
||||
it.body,
|
||||
it.path,
|
||||
it.originalPosition,
|
||||
it.isOutdated
|
||||
)
|
||||
}?.firstOrNull()
|
||||
)
|
||||
)
|
||||
|
||||
private fun getPullRequestCommit(node: AsPullRequestCommit) = TimelineModel(
|
||||
pullRequestCommit = PullRequestCommitModel(
|
||||
node.id,
|
||||
node.url.toString(),
|
||||
CommitModel(
|
||||
node.prCommit.oid.toString(),
|
||||
ShortUserModel(
|
||||
node.prCommit.author?.name,
|
||||
node.prCommit.author?.name,
|
||||
node.prCommit.author?.user?.url.toString(),
|
||||
avatarUrl = node.prCommit.author?.avatarUrl?.toString() ?: node.prCommit.author?.user?.avatarUrl?.toString()
|
||||
),
|
||||
node.prCommit.message,
|
||||
node.prCommit.abbreviatedOid,
|
||||
node.prCommit.commitUrl.toString(),
|
||||
node.prCommit.authoredDate,
|
||||
node.prCommit.isCommittedViaWeb,
|
||||
node.prCommit.status?.state?.rawValue()
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
private fun getReviewRemoved(node: AsReviewRequestRemovedEvent) = TimelineModel(
|
||||
reviewRequestRemoved = ReviewRequestRemovedModel(
|
||||
node.actor?.fragments?.shortActor?.toUser(),
|
||||
when (val m = node.requestedReviewer) {
|
||||
is AsUser1 -> ShortUserModel(m.login, m.login, m.url.toString(), avatarUrl = m.userAvatar.toString())
|
||||
is AsTeam1 -> ShortUserModel(m.name, m.name, m.url.toString(), avatarUrl = m.teamAvatar.toString())
|
||||
is AsMannequin1 -> ShortUserModel(m.login, m.login, m.url.toString(), avatarUrl = m.monnequinAvatar.toString())
|
||||
else -> null
|
||||
},
|
||||
node.createdAt,
|
||||
node.requestedReviewer is AsUser1,
|
||||
node.requestedReviewer is AsTeam1,
|
||||
node.requestedReviewer is AsMannequin1
|
||||
)
|
||||
)
|
||||
|
||||
private fun getDismissedReview(node: AsReviewDismissedEvent) = TimelineModel(
|
||||
reviewDismissed = ReviewDismissedModel(
|
||||
node.actor?.fragments?.shortActor?.toUser(),
|
||||
node.createdAt,
|
||||
|
||||
@ -231,6 +231,22 @@ query getPullRequestTimeline($login: String!, $repo: String!, $number: Int!, $pa
|
||||
prCommit: commit {
|
||||
oid
|
||||
abbreviatedOid
|
||||
committedViaWeb
|
||||
authoredDate
|
||||
message
|
||||
commitUrl
|
||||
status {
|
||||
state
|
||||
}
|
||||
author {
|
||||
avatarUrl
|
||||
name
|
||||
user {
|
||||
login
|
||||
avatarUrl
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
... on PullRequestCommitCommentThread {
|
||||
@ -378,6 +394,24 @@ query getPullRequestTimeline($login: String!, $repo: String!, $number: Int!, $pa
|
||||
}
|
||||
... on ReviewRequestRemovedEvent {
|
||||
actor { ... ShortActor }
|
||||
createdAt
|
||||
requestedReviewer {
|
||||
... on User {
|
||||
userAvatar: avatarUrl
|
||||
login
|
||||
url
|
||||
}
|
||||
... on Team {
|
||||
teamAvatar: avatarUrl
|
||||
name
|
||||
url
|
||||
}
|
||||
... on Mannequin {
|
||||
monnequinAvatar: avatarUrl
|
||||
login
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
... on PullRequestReview {
|
||||
id
|
||||
|
||||
@ -30,7 +30,10 @@ data class TimelineModel(
|
||||
@SerializedName("headRefRestored") var headRefRestored: HeadRefRestoredModel? = null,
|
||||
@SerializedName("headRefDeleted") var headRefDeleted: HeadRefDeletedModel? = null,
|
||||
@SerializedName("reviewRequested") var reviewRequested: ReviewRequestedModel? = null,
|
||||
@SerializedName("reviewDismissed") var reviewDismissed: ReviewDismissedModel? = null
|
||||
@SerializedName("reviewDismissed") var reviewDismissed: ReviewDismissedModel? = null,
|
||||
@SerializedName("reviewRequestRemoved") var reviewRequestRemoved: ReviewRequestRemovedModel? = null,
|
||||
@SerializedName("pullRequestCommit") var pullRequestCommit: PullRequestCommitModel? = null,
|
||||
@SerializedName("review") var review: ReviewModel? = null
|
||||
)
|
||||
|
||||
data class CommitModel(
|
||||
@ -40,7 +43,8 @@ data class CommitModel(
|
||||
@SerializedName("abbreviatedOid") var abbreviatedOid: String? = null,
|
||||
@SerializedName("commitUrl") var commitUrl: String? = null,
|
||||
@SerializedName("authoredDate") var authoredDate: Date? = null,
|
||||
@SerializedName("committedViaWeb") var committedViaWeb: Boolean? = null
|
||||
@SerializedName("committedViaWeb") var committedViaWeb: Boolean? = null,
|
||||
@SerializedName("state") var state: String? = null
|
||||
)
|
||||
|
||||
data class CommentModel(
|
||||
@ -178,9 +182,45 @@ data class ReviewDismissedModel(
|
||||
@SerializedName("createdAt") var createdAt: Date? = null,
|
||||
@SerializedName("dismissalMessage") var dismissalMessage: String? = null,
|
||||
@SerializedName("previousReviewState") var previousReviewState: String? = null,
|
||||
@SerializedName("url") var url: String
|
||||
@SerializedName("url") var url: String? = null
|
||||
)
|
||||
|
||||
data class ReviewRequestRemovedModel(
|
||||
@SerializedName("actor") var actor: ShortUserModel? = null,
|
||||
@SerializedName("reviewer") var reviewer: ShortUserModel? = null,
|
||||
@SerializedName("createdAt") var createdAt: Date? = null,
|
||||
@SerializedName("isUser") var isUser: Boolean = true,
|
||||
@SerializedName("isTeam") var isTeam: Boolean = false,
|
||||
@SerializedName("isMannequin") var isMannequin: Boolean = false
|
||||
)
|
||||
|
||||
data class PullRequestCommitModel(
|
||||
@SerializedName("id") var id: String? = null,
|
||||
@SerializedName("url") var url: String? = null,
|
||||
@SerializedName("commit") var commit: CommitModel? = null
|
||||
)
|
||||
|
||||
data class ReviewModel(
|
||||
@SerializedName("id") var id: String? = null,
|
||||
@SerializedName("databaseId") var databaseId: Int? = null,
|
||||
@SerializedName("author") var author: ShortUserModel? = null,
|
||||
@SerializedName("body") var body: String? = null,
|
||||
@SerializedName("authorAssociation") var authorAssociation: String? = null,
|
||||
@SerializedName("state") var state: String? = null,
|
||||
@SerializedName("createdAt") var createdAt: Date? = null,
|
||||
@SerializedName("comment") var comment: ReviewComment? = null
|
||||
)
|
||||
|
||||
data class ReviewComment(
|
||||
@SerializedName("author") var author: ShortUserModel? = null,
|
||||
@SerializedName("replyTo") var replyTo: ShortUserModel? = null,
|
||||
@SerializedName("body") var body: String? = null,
|
||||
@SerializedName("path") var path: String? = null,
|
||||
@SerializedName("originalPosition") var originalPosition: Int? = null,
|
||||
@SerializedName("outdated") var outdated: Boolean? = null
|
||||
)
|
||||
|
||||
|
||||
enum class CommentAuthorAssociation(val value: String) {
|
||||
MEMBER("MEMBER"),
|
||||
OWNER("OWNER"),
|
||||
@ -204,6 +244,6 @@ enum class CommentCannotUpdateReason(val value: kotlin.String) {
|
||||
DENIED("LOGIN_REQUIRED");
|
||||
|
||||
companion object {
|
||||
fun fromName(name: String): CommentCannotUpdateReason? = CommentCannotUpdateReason.values().firstOrNull { it.value == name }
|
||||
fun fromName(name: String): CommentCannotUpdateReason? = values().firstOrNull { it.value == name }
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user