All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gitbucket.core.api.ApiPullRequestReviewComment.scala Maven / Gradle / Ivy

package gitbucket.core.api

import gitbucket.core.util.RepositoryName
import gitbucket.core.model.CommitComment

import java.util.Date

/**
 * https://developer.github.com/v3/activity/events/types/#pullrequestreviewcommentevent
 */
case class ApiPullRequestReviewComment(
  id: Int, // 29724692
  // "diff_hunk": "@@ -1 +1 @@\n-# public-repo",
  path: String, // "README.md",
  // "position": 1,
  // "original_position": 1,
  commit_id: String, // "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
  // "original_commit_id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c",
  user: ApiUser,
  body: String, // "Maybe you should use more emojji on this line.",
  created_at: Date,  // "2015-05-05T23:40:27Z",
  updated_at: Date // "2015-05-05T23:40:27Z",
)(repositoryName:RepositoryName, issueId: Int) extends FieldSerializable {
  // "url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments/29724692",
  val url = ApiPath(s"/api/v3/repos/${repositoryName.fullName}/pulls/comments/${id}")
  // "html_url": "https://github.com/baxterthehacker/public-repo/pull/1#discussion_r29724692",
  val html_url = ApiPath(s"/${repositoryName.fullName}/pull/${issueId}#discussion_r${id}")
  // "pull_request_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1",
  val pull_request_url = ApiPath(s"/api/v3/repos/${repositoryName.fullName}/pulls/${issueId}")

  /*
    "_links": {
      "self": {
        "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments/29724692"
      },
      "html": {
        "href": "https://github.com/baxterthehacker/public-repo/pull/1#discussion_r29724692"
      },
      "pull_request": {
        "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1"
      }
    }
  */
  val _links = Map(
    "self" -> Map("href" -> url),
    "html" -> Map("href" -> html_url),
    "pull_request" -> Map("href" -> pull_request_url))
}

object ApiPullRequestReviewComment{
  def apply(comment: CommitComment, commentedUser: ApiUser, repositoryName: RepositoryName, issueId: Int): ApiPullRequestReviewComment =
    new ApiPullRequestReviewComment(
     id = comment.commentId,
     path = comment.fileName.getOrElse(""),
     commit_id = comment.commitId,
     user = commentedUser,
     body = comment.content,
     created_at = comment.registeredDate,
     updated_at = comment.updatedDate
  )(repositoryName, issueId)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy