diff --git a/src/main/scala/gitbucket/core/api/ApiRelease.scala b/src/main/scala/gitbucket/core/api/ApiRelease.scala index d661235..c23c5ea 100644 --- a/src/main/scala/gitbucket/core/api/ApiRelease.scala +++ b/src/main/scala/gitbucket/core/api/ApiRelease.scala @@ -2,17 +2,17 @@ import gitbucket.core.model.{Account, ReleaseAsset, ReleaseTag} import gitbucket.core.util.RepositoryName -case class ApiReleaseAsset(name: String, size: Long)(asset: ReleaseAsset, repositoryName: RepositoryName) { +case class ApiReleaseAsset(name: String, size: Long)(tag: String, fileName: String, repositoryName: RepositoryName) { val label = name - val file_id = asset.fileName + val file_id = fileName val browser_download_url = ApiPath( - s"/api/v3/repos/${repositoryName.fullName}/releases/${asset.tag}/assets/${asset.fileName}" + s"/api/v3/repos/${repositoryName.fullName}/releases/${tag}/assets/${fileName}" ) } object ApiReleaseAsset { def apply(asset: ReleaseAsset, repositoryName: RepositoryName): ApiReleaseAsset = - ApiReleaseAsset(asset.label, asset.size)(asset, repositoryName) + ApiReleaseAsset(asset.label, asset.size)(asset.tag, asset.fileName, repositoryName) } case class ApiRelease( diff --git a/src/test/scala/gitbucket/core/api/ApiSpecModels.scala b/src/test/scala/gitbucket/core/api/ApiSpecModels.scala index 0b2cdac..4048422 100644 --- a/src/test/scala/gitbucket/core/api/ApiSpecModels.scala +++ b/src/test/scala/gitbucket/core/api/ApiSpecModels.scala @@ -388,6 +388,25 @@ `object` = ApiObject(sha1) ) + val assetFileName = "010203040a0b0c0d" + + val apiReleaseAsset = ApiReleaseAsset( + name = "release.zip", + size = 100 + )( + tag = "tag1", + fileName = assetFileName, + repositoryName = repo1Name + ) + + val apiRelease = ApiRelease( + name = "release1", + tag_name = "tag1", + body = Some("content"), + author = apiUser, + assets = Seq(apiReleaseAsset) + ) + // JSON String for APIs val jsonUser = """{ @@ -649,4 +668,21 @@ val jsonRef = """{"ref":"refs/heads/featureA","object":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e"}}""" + val jsonReleaseAsset = + s"""{ + |"name":"release.zip", + |"size":100, + |"label":"release.zip", + |"file_id":"${assetFileName}", + |"browser_download_url":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/releases/tag1/assets/${assetFileName}" + |}""".stripMargin + + val jsonRelease = + s"""{ + |"name":"release1", + |"tag_name":"tag1", + |"body":"content", + |"author":${jsonUser}, + |"assets":[${jsonReleaseAsset}] + |}""".stripMargin } diff --git a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala index 0cf00cd..6a6ee26 100644 --- a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala +++ b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala @@ -73,4 +73,10 @@ test("apiRef") { assert(JsonFormat(apiRef) == expected(jsonRef)) } + test("apiReleaseAsset") { + assert(JsonFormat(apiReleaseAsset) == expected(jsonReleaseAsset)) + } + test("apiRelease") { + assert(JsonFormat(apiRelease) == expected(jsonRelease)) + } }