summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2016-07-16 01:02:55 +0800
committerUnknwon <u@gogs.io>2016-07-16 01:02:55 +0800
commit3d93532c87823159dd03e9c64a58c7bafed0fa64 (patch)
treecdf287400fd753711138486ce06766b3c789d96a
parentfff615d5fc257c812f197a801578f32c177fbef9 (diff)
downloadgitea-3d93532c87823159dd03e9c64a58c7bafed0fa64.tar.gz
gitea-3d93532c87823159dd03e9c64a58c7bafed0fa64.zip
#3274 fix can't get webhook detail of organization
-rw-r--r--models/webhook.go22
-rw-r--r--routers/api/v1/repo/hook.go2
-rw-r--r--routers/org/setting.go2
-rw-r--r--routers/repo/webhook.go7
-rw-r--r--templates/repo/home.tmpl2
5 files changed, 26 insertions, 9 deletions
diff --git a/models/webhook.go b/models/webhook.go
index 85590c705a..134ac10173 100644
--- a/models/webhook.go
+++ b/models/webhook.go
@@ -174,8 +174,8 @@ func CreateWebhook(w *Webhook) error {
return err
}
-// GetWebhookByID returns webhook of repository by given ID.
-func GetWebhookByID(repoID, id int64) (*Webhook, error) {
+// GetWebhookByRepoID returns webhook of repository by given ID.
+func GetWebhookByRepoID(repoID, id int64) (*Webhook, error) {
w := new(Webhook)
has, err := x.Id(id).And("repo_id=?", repoID).Get(w)
if err != nil {
@@ -186,6 +186,18 @@ func GetWebhookByID(repoID, id int64) (*Webhook, error) {
return w, nil
}
+// GetWebhookByOrgID returns webhook of organization by given ID.
+func GetWebhookByOrgID(orgID, id int64) (*Webhook, error) {
+ w := new(Webhook)
+ has, err := x.Id(id).And("org_id=?", orgID).Get(w)
+ if err != nil {
+ return nil, err
+ } else if !has {
+ return nil, ErrWebhookNotExist{id}
+ }
+ return w, nil
+}
+
// GetActiveWebhooksByRepoID returns all active webhooks of repository.
func GetActiveWebhooksByRepoID(repoID int64) (ws []*Webhook, err error) {
err = x.Where("repo_id=?", repoID).And("is_active=?", true).Find(&ws)
@@ -221,8 +233,8 @@ func DeleteWebhook(id int64) (err error) {
return sess.Commit()
}
-// GetWebhooksByOrgId returns all webhooks for an organization.
-func GetWebhooksByOrgId(orgID int64) (ws []*Webhook, err error) {
+// GetWebhooksByOrgID returns all webhooks for an organization.
+func GetWebhooksByOrgID(orgID int64) (ws []*Webhook, err error) {
err = x.Find(&ws, &Webhook{OrgID: orgID})
return ws, err
}
@@ -548,7 +560,7 @@ func (t *HookTask) deliver() {
}
// Update webhook last delivery status.
- w, err := GetWebhookByID(t.RepoID, t.HookID)
+ w, err := GetWebhookByRepoID(t.RepoID, t.HookID)
if err != nil {
log.Error(5, "GetWebhookByID: %v", err)
return
diff --git a/routers/api/v1/repo/hook.go b/routers/api/v1/repo/hook.go
index 0dac8f7cf1..0bf46977d9 100644
--- a/routers/api/v1/repo/hook.go
+++ b/routers/api/v1/repo/hook.go
@@ -98,7 +98,7 @@ func CreateHook(ctx *context.APIContext, form api.CreateHookOption) {
// https://github.com/gogits/go-gogs-client/wiki/Repositories#edit-a-hook
func EditHook(ctx *context.APIContext, form api.EditHookOption) {
- w, err := models.GetWebhookByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
+ w, err := models.GetWebhookByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrWebhookNotExist(err) {
ctx.Status(404)
diff --git a/routers/org/setting.go b/routers/org/setting.go
index c50e18d7c9..a938581c61 100644
--- a/routers/org/setting.go
+++ b/routers/org/setting.go
@@ -154,7 +154,7 @@ func Webhooks(ctx *context.Context) {
return
}
- ws, err := models.GetWebhooksByOrgId(ctx.Org.Organization.Id)
+ ws, err := models.GetWebhooksByOrgID(ctx.Org.Organization.Id)
if err != nil {
ctx.Handle(500, "GetWebhooksByOrgId", err)
return
diff --git a/routers/repo/webhook.go b/routers/repo/webhook.go
index d904862359..b2274033b0 100644
--- a/routers/repo/webhook.go
+++ b/routers/repo/webhook.go
@@ -220,7 +220,12 @@ func checkWebhook(ctx *context.Context) (*OrgRepoCtx, *models.Webhook) {
}
ctx.Data["BaseLink"] = orCtx.Link
- w, err := models.GetWebhookByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
+ var w *models.Webhook
+ if orCtx.RepoID > 0 {
+ w, err = models.GetWebhookByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
+ } else {
+ w, err = models.GetWebhookByOrgID(ctx.Org.Organization.Id, ctx.ParamsInt64(":id"))
+ }
if err != nil {
if models.IsErrWebhookNotExist(err) {
ctx.Handle(404, "GetWebhookByID", nil)
diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl
index fe5a621634..fe7b9c33b2 100644
--- a/templates/repo/home.tmpl
+++ b/templates/repo/home.tmpl
@@ -9,7 +9,7 @@
<div class="ui secondary menu">
{{if .PullRequestCtx.Allowed}}
<div class="fitted item">
- <a href="{{.BaseRepo.RepoLink}}/compare/{{.BaseRepo.DefaultBranch}}...{{.PullRequestCtx.HeadInfo}}">
+ <a href="{{.BaseRepo.Link}}/compare/{{.BaseRepo.DefaultBranch}}...{{.PullRequestCtx.HeadInfo}}">
<button class="ui green small button"><i class="octicon octicon-git-compare"></i></button>
</a>
</div>