diff options
author | Unknwon <u@gogs.io> | 2016-07-16 01:02:55 +0800 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2016-07-16 01:02:55 +0800 |
commit | 3d93532c87823159dd03e9c64a58c7bafed0fa64 (patch) | |
tree | cdf287400fd753711138486ce06766b3c789d96a | |
parent | fff615d5fc257c812f197a801578f32c177fbef9 (diff) | |
download | gitea-3d93532c87823159dd03e9c64a58c7bafed0fa64.tar.gz gitea-3d93532c87823159dd03e9c64a58c7bafed0fa64.zip |
#3274 fix can't get webhook detail of organization
-rw-r--r-- | models/webhook.go | 22 | ||||
-rw-r--r-- | routers/api/v1/repo/hook.go | 2 | ||||
-rw-r--r-- | routers/org/setting.go | 2 | ||||
-rw-r--r-- | routers/repo/webhook.go | 7 | ||||
-rw-r--r-- | templates/repo/home.tmpl | 2 |
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> |