code.gitea.io/gitea@v1.22.3/routers/web/user/setting/webhooks.go (about)

     1  // Copyright 2023 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package setting
     5  
     6  import (
     7  	"net/http"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	"code.gitea.io/gitea/models/webhook"
    11  	"code.gitea.io/gitea/modules/base"
    12  	"code.gitea.io/gitea/modules/setting"
    13  	"code.gitea.io/gitea/services/context"
    14  )
    15  
    16  const (
    17  	tplSettingsHooks base.TplName = "user/settings/hooks"
    18  )
    19  
    20  // Webhooks render webhook list page
    21  func Webhooks(ctx *context.Context) {
    22  	ctx.Data["Title"] = ctx.Tr("settings")
    23  	ctx.Data["PageIsSettingsHooks"] = true
    24  	ctx.Data["BaseLink"] = setting.AppSubURL + "/user/settings/hooks"
    25  	ctx.Data["BaseLinkNew"] = setting.AppSubURL + "/user/settings/hooks"
    26  	ctx.Data["Description"] = ctx.Tr("settings.hooks.desc")
    27  
    28  	ws, err := db.Find[webhook.Webhook](ctx, webhook.ListWebhookOptions{OwnerID: ctx.Doer.ID})
    29  	if err != nil {
    30  		ctx.ServerError("ListWebhooksByOpts", err)
    31  		return
    32  	}
    33  
    34  	ctx.Data["Webhooks"] = ws
    35  	ctx.HTML(http.StatusOK, tplSettingsHooks)
    36  }
    37  
    38  // DeleteWebhook response for delete webhook
    39  func DeleteWebhook(ctx *context.Context) {
    40  	if err := webhook.DeleteWebhookByOwnerID(ctx, ctx.Doer.ID, ctx.FormInt64("id")); err != nil {
    41  		ctx.Flash.Error("DeleteWebhookByOwnerID: " + err.Error())
    42  	} else {
    43  		ctx.Flash.Success(ctx.Tr("repo.settings.webhook_deletion_success"))
    44  	}
    45  
    46  	ctx.JSONRedirect(setting.AppSubURL + "/user/settings/hooks")
    47  }