Skip to content
This repository was archived by the owner on Dec 20, 2017. It is now read-only.

Commit 17fe4f2

Browse files
committed
added dataservice to keep bot data in sync
1 parent e65dc0c commit 17fe4f2

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

Sources/Bot/Bot+DataService.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
extension SlackBot {
3+
final class DataService: SlackRTMEventService {
4+
func configureEvents(slackBot: SlackBot, webApi: WebAPI, dispatcher: SlackRTMEventDispatcher) {
5+
dispatcher.onEvent(team_join.self) { user in
6+
slackBot.users.append(user)
7+
}
8+
}
9+
}
10+
}

Sources/Bot/Bot.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@ public class SlackBot {
1313
fileprivate let server: HTTPServer
1414
fileprivate let state: BotStateMachine
1515
fileprivate let authenticator: SlackAuthenticator
16-
fileprivate var services: [SlackService] = [] //TODO: include default service that updates the bots Internal Data
16+
fileprivate var services: [SlackService] = [DataService()]
1717

1818
//MARK: - Internal Dependencies
1919
internal let webAPI: WebAPI
2020
internal let rtmAPI: RTMAPI
2121

2222
//MARK: - Internal Data
23-
internal fileprivate(set) var botUser: BotUser?
24-
internal fileprivate(set) var team: Team?
25-
internal fileprivate(set) var users: [User] = []
26-
internal fileprivate(set) var channels: [Channel] = []
27-
internal fileprivate(set) var groups: [Group] = []
28-
internal fileprivate(set) var ims: [IM] = []
23+
internal var botUser: BotUser?
24+
internal var team: Team?
25+
internal var users: [User] = []
26+
internal var channels: [Channel] = []
27+
internal var groups: [Group] = []
28+
internal var ims: [IM] = []
2929
//internal fileprivate(set) var mpims: [MPIM] = []
3030

3131
//MARK: - Public Properties

0 commit comments

Comments
 (0)