Skip to content

Commit 0708960

Browse files
committed
fix: add delete function for trello
1 parent ad65a60 commit 0708960

File tree

4 files changed

+43
-4
lines changed

4 files changed

+43
-4
lines changed
Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
package trello
22

3-
import "github.com/merico-dev/stream/pkg/util/log"
4-
5-
// Delete does not remove trello board and lists
3+
// Delete delete trello board and lists
64
func Delete(options map[string]interface{}) (bool, error) {
7-
log.Info("Delelte will do nothing, because someone might be using the existing board.")
5+
var opt *Options
6+
var err error
7+
8+
if opt, err = convertMap2Options(options); err != nil {
9+
return false, err
10+
}
11+
if err := validateOptions(opt); err != nil {
12+
return false, err
13+
}
14+
15+
if err = DeleteTrelloBoard(opt); err != nil {
16+
return false, err
17+
}
818
return true, nil
919
}

internal/pkg/plugin/trello/trello.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,12 @@ func CreateTrelloBoard(options *Options) (*TrelloItemId, error) {
7979
doneListId: done,
8080
}, nil
8181
}
82+
83+
// DeleteTrelloBoard delete specified board
84+
func DeleteTrelloBoard(options *Options) error {
85+
c, err := trello.NewClient()
86+
if err != nil {
87+
return err
88+
}
89+
return c.CheckAndDeleteBoard(options.Owner, options.Repo, options.KanbanBoardName)
90+
}

internal/pkg/plugin/trello/update.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ func Update(options map[string]interface{}) (map[string]interface{}, error) {
1414
return nil, err
1515
}
1616

17+
if err = DeleteTrelloBoard(opt); err != nil {
18+
return nil, err
19+
}
20+
1721
trelloIds, err := CreateTrelloBoard(opt)
1822
if err != nil {
1923
return nil, err

pkg/util/trello/trello.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,22 @@ func (c *Client) CheckBoardExists(owner, repo, kanbanBoardName string) (bool, er
9393
return false, nil
9494
}
9595

96+
// CheckAndDeleteBoard if the board exists, delete it
97+
func (c *Client) CheckAndDeleteBoard(owner, repo, kanbanBoardName string) error {
98+
bs, err := c.Client.GetMyBoards()
99+
if err != nil {
100+
return err
101+
}
102+
103+
for _, b := range bs {
104+
if checkTargetBoard(owner, repo, kanbanBoardName, b) {
105+
log.Infof("Board will be deleted, name: %s, description: %s.", b.Name, b.Desc)
106+
return b.Delete()
107+
}
108+
}
109+
return nil
110+
}
111+
96112
func checkTargetBoard(owner, repo, kanbanBoardName string, b *trello.Board) bool {
97113
return !b.Closed && b.Name == kanbanBoardName && b.Desc == boardDesc(owner, repo)
98114
}

0 commit comments

Comments
 (0)