Skip to content

Commit 20fae85

Browse files
author
Johann Egger
committed
Merge remote-tracking branch 'origin/FT-194'
* origin/FT-194: version bump for depending (FT-99) Update HookServices.scala hook api changed to bitbucket 2.0 api vBump
2 parents ab7e206 + 4bef364 commit 20fae85

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.codacy.client.bitbucket
2+
3+
import play.api.libs.json.{Reads, Json, JsObject}
4+
5+
case class Webhook(uuid:String,description:String,url:String,subject:JsObject,events:Set[String],active:Boolean,created_at:String,links:JsObject)
6+
object Webhook{
7+
implicit val reads: Reads[Webhook] = Json.reads[Webhook].map{ case hook =>
8+
hook.uuid match{
9+
case uuid if uuid.startsWith("{") && uuid.endsWith("}") =>
10+
hook.copy(uuid = uuid.drop(1).dropRight(1))
11+
case _ => hook
12+
}
13+
}
14+
}
Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,34 @@
11
package com.codacy.client.bitbucket.service
22

3-
import com.codacy.client.bitbucket.Service
3+
import com.codacy.client.bitbucket.{Webhook, Service}
44
import com.codacy.client.bitbucket.client.{BitbucketClient, Request, RequestResponse}
55
import play.api.libs.json.Json
66

77
class HookServices(client: BitbucketClient) {
88

9-
def list(author: String, repo: String): RequestResponse[Seq[Service]] = {
9+
def list(author: String, repo: String): RequestResponse[Seq[Webhook]] = {
1010
val servicesUrl = getServicesUrl(author, repo)
11-
client.execute(Request(servicesUrl, classOf[Seq[Service]]))
11+
client.executePaginated(Request(servicesUrl, classOf[Seq[Webhook]]))
1212
}
1313

14-
def create(author: String, repo: String, hookType: String, hookUrl: String): RequestResponse[Service] = {
14+
def create(author: String, repo: String, description: String, hookUrl: String, events:Set[String]): RequestResponse[Webhook] = {
1515
val servicesUrl = getServicesUrl(author, repo)
1616
val payload = Json.obj(
17-
"type" -> hookType,
18-
"URL" -> hookUrl
17+
"active" -> true,
18+
"description" -> description,
19+
"url" -> hookUrl,
20+
"events" -> events
1921
)
20-
client.post(Request(servicesUrl, classOf[Service]), payload)
22+
client.post(Request(servicesUrl, classOf[Webhook]), payload)
2123
}
2224

23-
def delete(author: String, repo: String, id: Long): RequestResponse[Boolean] = {
25+
def delete(author: String, repo: String, uuid: String): RequestResponse[Boolean] = {
2426
val servicesUrl = getServicesUrl(author, repo)
25-
client.delete(s"$servicesUrl/$id")
27+
client.delete(s"$servicesUrl/$uuid")
2628
}
2729

28-
private lazy val BASE_URL: String = "https://bitbucket.org/!api/1.0/repositories"
30+
private[this] lazy val BASE_URL: String = "https://api.bitbucket.org/2.0/repositories"
2931

30-
private def getServicesUrl(author: String, repo: String) = s"$BASE_URL/$author/$repo/services"
32+
private[this] def getServicesUrl(owner: String, repo: String) = s"$BASE_URL/$owner/$repo/hooks"
3133

3234
}

0 commit comments

Comments
 (0)