Skip to content

Commit

Permalink
Merge pull request #3 from TJM/board_member
Browse files Browse the repository at this point in the history
Fix: List of boards client was nil
  • Loading branch information
Tommy McNeely authored Oct 31, 2020
2 parents 592516f + 83ce819 commit 0a51245
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 23 deletions.
37 changes: 18 additions & 19 deletions board.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func (c *Client) Board(boardID string) (board *Board, err error) {
body, err := c.Get("/boards/" + boardID)
if err == nil {
board = &Board{}
err = parseBoard(body, board, c)
board.parseBoard(body, c)
}
return
}
Expand All @@ -97,7 +97,7 @@ func (c *Client) CreateBoard(name string) (board *Board, err error) {
body, err := c.Post("/boards", payload)
if err == nil {
board = &Board{}
err = parseBoard(body, board, c)
err = board.parseBoard(body, c)
}
return
}
Expand All @@ -117,7 +117,7 @@ func (b *Board) Duplicate(name string, keepCards bool) (board *Board, err error)
body, err := b.client.Post("/boards", payload)
if err == nil {
board = &Board{}
err = parseBoard(body, board, b.client)
err = board.parseBoard(body, b.client)
}
return
}
Expand All @@ -141,7 +141,7 @@ func (b *Board) Update(path, value string) (err error) {

body, err := b.client.Put("/boards/"+b.ID+"/"+path, payload)
if err == nil {
err = parseBoard(body, b, b.client)
err = b.parseBoard(body, b.client)
}
return
}
Expand Down Expand Up @@ -190,7 +190,7 @@ func (b *Board) AddMember(member *Member, memberType string) (err error) {
payload.Set("type", memberType)
body, err := b.client.Put("/boards/"+b.ID+"/members/"+member.ID, payload)
if err == nil {
err = parseBoard(body, b, b.client)
err = b.parseBoard(body, b.client)
}
return
}
Expand All @@ -200,7 +200,7 @@ func (b *Board) AddMember(member *Member, memberType string) (err error) {
func (b *Board) RemoveMember(member *Member) (err error) {
body, err := b.client.Delete("/boards/" + b.ID + "/members/" + member.ID)
if err == nil {
err = parseBoard(body, b, b.client)
err = b.parseBoard(body, b.client)
}
return
}
Expand Down Expand Up @@ -361,33 +361,32 @@ func (b *Board) AddLabel(name, color string) (label *Label, err error) {
return
}

func parseBoard(body []byte, board *Board, client *Client) (err error) {
err = json.Unmarshal(body, &board)
func (b *Board) parseBoard(body []byte, client *Client) (err error) {
err = json.Unmarshal(body, &b)
if err == nil {
board.client = client
for i := range board.Members {
board.Members[i].client = client
b.client = client
for i := range b.Members {
b.Members[i].client = client
}
for i := range board.Memberships {
board.Memberships[i].client = client
board.Memberships[i].Board = board
for i := range b.Memberships {
b.Memberships[i].client = client
b.Memberships[i].Board = b
}
}
return
}

func parseListBoards(body []byte, client *Client) (boards []Board, err error) {
func parseListBoards(body []byte, client *Client) (boards []*Board, err error) {
err = json.Unmarshal(body, &boards)
if err == nil {
for i := range boards {
board := boards[i]
board.client = client
boards[i].client = client
// List of boards will not have "Members"
// for i := range board.Members {
// board.Members[i].client = client
// }
for i := range board.Memberships {
board.Memberships[i].client = client
for j := range boards[i].Memberships {
boards[i].Memberships[j].client = client
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion member.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ func (c *Client) Member(nick string) (member *Member, err error) {

// Boards returns members boards
// - https://developer.atlassian.com/cloud/trello/rest/api-group-members/#api-members-id-boards-get
func (m *Member) Boards(field ...string) (boards []Board, err error) {
func (m *Member) Boards(field ...string) (boards []*Board, err error) {
fields := ""
if len(field) == 0 {
fields = "all"
Expand Down
5 changes: 4 additions & 1 deletion member_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,11 @@ func TestMember(t *testing.T) {
})

g.It("should retrieve boards for a member", func() {
_, err = member.Boards()
boards, err := member.Boards()
Expect(err).To(BeNil())
for i := range boards {
Expect(boards[i].client).NotTo(BeNil())
}
})

g.It("should add a board to a member", func() {
Expand Down
4 changes: 2 additions & 2 deletions organization.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ func (o *Organization) Members() (members []*Member, err error) {

// Boards - Get Boards in an Organization
// - https://developer.atlassian.com/cloud/trello/rest/api-group-organizations/#api-organizations-id-boards-get
func (o *Organization) Boards() (boards []Board, err error) {
func (o *Organization) Boards() (boards []*Board, err error) {
body, err := o.client.Get("/organizations/" + o.ID + "/boards")
if err == nil {
boards, err = parseListBoards(body, o.client)
Expand All @@ -79,7 +79,7 @@ func (o *Organization) AddBoard(name string) (board *Board, err error) {
body, err := o.client.Post("/boards", payload)
if err == nil {
board = &Board{}
err = parseBoard(body, board, o.client)
err = board.parseBoard(body, o.client)
}
return
}
Expand Down

0 comments on commit 0a51245

Please sign in to comment.