Channels are pointers by default
Tarrant
9 years ago
101 | 101 | return nil |
102 | 102 | } |
103 | 103 | |
104 | func (api *SlackWS) HandleIncomingEvents(ch *chan SlackEvent) { | |
104 | func (api *SlackWS) HandleIncomingEvents(ch chan SlackEvent) { | |
105 | 105 | event := json.RawMessage{} |
106 | 106 | for { |
107 | 107 | if err := websocket.JSON.Receive(api.conn, &event); err == io.EOF { |
132 | 132 | } |
133 | 133 | } |
134 | 134 | |
135 | func handleEvent(ch *chan SlackEvent, event json.RawMessage) { | |
135 | func handleEvent(ch chan SlackEvent, event json.RawMessage) { | |
136 | 136 | em := Event{} |
137 | 137 | err := json.Unmarshal(event, &em) |
138 | 138 | if err != nil { |
170 | 170 | } |
171 | 171 | } |
172 | 172 | |
173 | func handleUserTyping(ch *chan SlackEvent, event json.RawMessage) { | |
173 | func handleUserTyping(ch chan SlackEvent, event json.RawMessage) { | |
174 | 174 | msg := UserTyping{} |
175 | 175 | if err := json.Unmarshal(event, &msg); err != nil { |
176 | 176 | log.Fatal(err) |
177 | 177 | } |
178 | *ch <- SlackEvent{Type: EV_USER_TYPING, Data: msg} | |
178 | ch <- SlackEvent{Type: EV_USER_TYPING, Data: msg} | |
179 | 179 | } |
180 | 180 | |
181 | func handleMessage(ch *chan SlackEvent, event json.RawMessage) { | |
181 | func handleMessage(ch chan SlackEvent, event json.RawMessage) { | |
182 | 182 | msg := Message{} |
183 | 183 | err := json.Unmarshal(event, &msg) |
184 | 184 | if err != nil { |
185 | 185 | log.Fatal(err) |
186 | 186 | } |
187 | *ch <- SlackEvent{Type: EV_MESSAGE, Data: msg} | |
187 | ch <- SlackEvent{Type: EV_MESSAGE, Data: msg} | |
188 | 188 | } |