code.gitea.io/gitea@v1.21.7/models/migrations/v1_14/v162.go (about)

     1  // Copyright 2020 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package v1_14 //nolint
     5  
     6  import (
     7  	"code.gitea.io/gitea/models/migrations/base"
     8  
     9  	"xorm.io/xorm"
    10  )
    11  
    12  func ConvertWebhookTaskTypeToString(x *xorm.Engine) error {
    13  	const (
    14  		GOGS int = iota + 1
    15  		SLACK
    16  		GITEA
    17  		DISCORD
    18  		DINGTALK
    19  		TELEGRAM
    20  		MSTEAMS
    21  		FEISHU
    22  		MATRIX
    23  		WECHATWORK
    24  	)
    25  
    26  	hookTaskTypes := map[int]string{
    27  		GITEA:      "gitea",
    28  		GOGS:       "gogs",
    29  		SLACK:      "slack",
    30  		DISCORD:    "discord",
    31  		DINGTALK:   "dingtalk",
    32  		TELEGRAM:   "telegram",
    33  		MSTEAMS:    "msteams",
    34  		FEISHU:     "feishu",
    35  		MATRIX:     "matrix",
    36  		WECHATWORK: "wechatwork",
    37  	}
    38  
    39  	type Webhook struct {
    40  		Type string `xorm:"char(16) index"`
    41  	}
    42  	if err := x.Sync(new(Webhook)); err != nil {
    43  		return err
    44  	}
    45  
    46  	for i, s := range hookTaskTypes {
    47  		if _, err := x.Exec("UPDATE webhook set type = ? where hook_task_type=?", s, i); err != nil {
    48  			return err
    49  		}
    50  	}
    51  
    52  	sess := x.NewSession()
    53  	defer sess.Close()
    54  	if err := sess.Begin(); err != nil {
    55  		return err
    56  	}
    57  	if err := base.DropTableColumns(sess, "webhook", "hook_task_type"); err != nil {
    58  		return err
    59  	}
    60  
    61  	return sess.Commit()
    62  }