Skip to content

Commit

Permalink
Add support for private channels to slack.go
Browse files Browse the repository at this point in the history
  • Loading branch information
iwataka committed Jul 7, 2018
1 parent fdef9a3 commit bae4b11
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 8 deletions.
30 changes: 22 additions & 8 deletions lib/slack.go
Original file line number Diff line number Diff line change
Expand Up @@ -269,15 +269,29 @@ func (l *SlackListener) Start(
if time.Now().Sub(*t)-time.Minute > 0 {
continue
}
chs, err := l.api.api.GetChannels(true)
if err != nil {
return utils.WithStack(err)
}
ch := ""
for _, c := range chs {
if c.ID == ev.Channel {
ch = c.Name
break
if ch == "" {
chs, err := l.api.api.GetChannels(true)
if err != nil {
return utils.WithStack(err)
}
for _, c := range chs {
if c.ID == ev.Channel {
ch = c.Name
break
}
}
}
if ch == "" {
grps, err := l.api.api.GetGroups(true)
if err != nil {
return utils.WithStack(err)
}
for _, g := range grps {
if g.ID == ev.Channel {
ch = g.Name
break
}
}
}
if ch != "" {
Expand Down
11 changes: 11 additions & 0 deletions mocks/slack.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,17 @@ func (_mr *_MockSlackAPIRecorder) GetChannels(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCall(_mr.mock, "GetChannels", arg0)
}

func (_m *MockSlackAPI) GetGroups(excludeArchived bool) ([]slack.Group, error) {
ret := _m.ctrl.Call(_m, "GetGroups", excludeArchived)
ret0, _ := ret[0].([]slack.Group)
ret1, _ := ret[1].(error)
return ret0, ret1
}

func (_mr *_MockSlackAPIRecorder) GetGroups(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCall(_mr.mock, "GetGroups", arg0)
}

func (_m *MockSlackAPI) AddPin(ch string, item slack.ItemRef) error {
ret := _m.ctrl.Call(_m, "AddPin", ch, item)
ret0, _ := ret[0].(error)
Expand Down
1 change: 1 addition & 0 deletions models/slack.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ type SlackAPI interface {
CreateGroup(group string) (*slack.Group, error)
NewRTM() *slack.RTM
GetChannels(excludeArchived bool) ([]slack.Channel, error)
GetGroups(excludeArchived bool) ([]slack.Group, error)
AddPin(ch string, item slack.ItemRef) error
AddStar(ch string, item slack.ItemRef) error
AddReaction(name string, item slack.ItemRef) error
Expand Down

0 comments on commit bae4b11

Please sign in to comment.