@@ -50,50 +50,46 @@ public class Client: WebSocketDelegate {
5050 public var reactionEventsDelegate : ReactionEventsDelegate ?
5151 public var teamEventsDelegate : TeamEventsDelegate ?
5252 public var subteamEventsDelegate : SubteamEventsDelegate ?
53+
54+ internal var token = " SLACK_AUTH_TOKEN "
5355
54- private var token = " SLACK_AUTH_TOKEN "
5556 public func setAuthToken( token: String ) {
5657 self . token = token
5758 }
5859
59- private var webSocket : WebSocket ?
60- private var dispatcher : EventDispatcher ?
61-
62- required public init ( ) {
60+ public var webAPI : SlackWebAPI {
61+ return SlackWebAPI ( client: self )
6362 }
63+
64+ internal var webSocket : WebSocket ?
65+ private var dispatcher : EventDispatcher ?
66+
67+ internal let api = NetworkInterface ( )
6468
65- public static let sharedInstance = Client ( )
69+ required public init ( apiToken: String ) {
70+ self . token = apiToken
71+ }
6672
67- //MARK: - Connection
6873 public func connect( ) {
6974 dispatcher = EventDispatcher ( client: self )
70- let request = NSURLRequest ( URL: NSURL ( string: " https://slack.com/api/rtm.start?token= " + token) !)
71- NSURLConnection . sendAsynchronousRequest ( request, queue: NSOperationQueue . currentQueue ( ) !) {
72- ( response, data, error) -> Void in
73- guard let data = data else {
74- return
75+ webAPI. rtmStart ( success: {
76+ ( response) -> Void in
77+ self . initialSetup ( response)
78+ if let socketURL = response [ " url " ] as? String {
79+ let url = NSURL ( string: socketURL)
80+ self . webSocket = WebSocket ( url: url!)
81+ self . webSocket? . delegate = self
82+ self . webSocket? . connect ( )
7583 }
76- do {
77- let result = try NSJSONSerialization . JSONObjectWithData ( data, options: [ ] ) as! [ String : AnyObject ]
78- if ( result [ " ok " ] as! Bool == true ) {
79- self . initialSetup ( result)
80- let socketURL = NSURL ( string: result [ " url " ] as! String )
81- self . webSocket = WebSocket ( url: socketURL!)
82- self . webSocket? . delegate = self
83- self . webSocket? . connect ( )
84- }
85- } catch _ {
86- print ( error)
87- }
88- }
84+ } , failure: nil )
8985 }
9086
9187 //MARK: - Message send
9288 public func sendMessage( message: String , channelID: String ) {
9389 if ( connected) {
9490 if let data = formatMessageToSlackJsonString ( msg: message, channel: channelID) {
9591 let string = NSString ( data: data, encoding: NSUTF8StringEncoding)
96- self . webSocket? . writeString ( string as! String )
92+ webSocket? . writeString ( string as! String )
9793 }
9894 }
9995 }
@@ -103,7 +99,7 @@ public class Client: WebSocketDelegate {
10399 " id " : NSDate ( ) . timeIntervalSince1970,
104100 " type " : " message " ,
105101 " channel " : message. channel,
106- " text " : slackFormatEscaping ( message. msg)
102+ " text " : message. msg. slackFormatEscaping ( )
107103 ]
108104 addSentMessage ( json)
109105 do {
@@ -124,15 +120,8 @@ public class Client: WebSocketDelegate {
124120 sentMessages [ ts!. stringValue] = Message ( message: message)
125121 }
126122
127- private func slackFormatEscaping( string: String ) -> String {
128- var escapedString = string. stringByReplacingOccurrencesOfString ( " & " , withString: " & " )
129- escapedString = escapedString. stringByReplacingOccurrencesOfString ( " < " , withString: " < " )
130- escapedString = escapedString. stringByReplacingOccurrencesOfString ( " > " , withString: " > " )
131- return escapedString
132- }
133-
134123 //MARK: - Client setup
135- private func initialSetup( json: [ String : AnyObject ] ) {
124+ internal func initialSetup( json: [ String : AnyObject ] ) {
136125 team = Team ( team: json [ " team " ] as? [ String : AnyObject ] )
137126 authenticatedUser = User ( user: json [ " self " ] as? [ String : AnyObject ] )
138127 authenticatedUser? . doNotDisturbStatus = DoNotDisturbStatus ( status: json [ " dnd " ] as? [ String : AnyObject ] )
@@ -145,7 +134,7 @@ public class Client: WebSocketDelegate {
145134 enumerateSubteams ( json [ " subteams " ] as? [ String : AnyObject ] )
146135 }
147136
148- private func enumerateUsers( users: [ AnyObject ] ? ) {
137+ internal func enumerateUsers( users: [ AnyObject ] ? ) {
149138 if let users = users {
150139 for user in users {
151140 let u = User ( user: user as? [ String : AnyObject ] )
@@ -154,7 +143,7 @@ public class Client: WebSocketDelegate {
154143 }
155144 }
156145
157- private func enumerateChannels( channels: [ AnyObject ] ? ) {
146+ internal func enumerateChannels( channels: [ AnyObject ] ? ) {
158147 if let channels = channels {
159148 for channel in channels {
160149 let c = Channel ( channel: channel as? [ String : AnyObject ] )
@@ -163,7 +152,7 @@ public class Client: WebSocketDelegate {
163152 }
164153 }
165154
166- private func enumerateGroups( groups: [ AnyObject ] ? ) {
155+ internal func enumerateGroups( groups: [ AnyObject ] ? ) {
167156 if let groups = groups {
168157 for group in groups {
169158 let g = Channel ( channel: group as? [ String : AnyObject ] )
@@ -172,7 +161,7 @@ public class Client: WebSocketDelegate {
172161 }
173162 }
174163
175- private func enumerateIMs( ims: [ AnyObject ] ? ) {
164+ internal func enumerateIMs( ims: [ AnyObject ] ? ) {
176165 if let ims = ims {
177166 for im in ims {
178167 let i = Channel ( channel: im as? [ String : AnyObject ] )
@@ -181,7 +170,7 @@ public class Client: WebSocketDelegate {
181170 }
182171 }
183172
184- private func enumerateMPIMs( mpims: [ AnyObject ] ? ) {
173+ internal func enumerateMPIMs( mpims: [ AnyObject ] ? ) {
185174 if let mpims = mpims {
186175 for mpim in mpims {
187176 let m = Channel ( channel: mpim as? [ String : AnyObject ] )
@@ -190,7 +179,7 @@ public class Client: WebSocketDelegate {
190179 }
191180 }
192181
193- private func enumerateBots( bots: [ AnyObject ] ? ) {
182+ internal func enumerateBots( bots: [ AnyObject ] ? ) {
194183 if let bots = bots {
195184 for bot in bots {
196185 let b = Bot ( bot: bot as? [ String : AnyObject ] )
@@ -199,7 +188,7 @@ public class Client: WebSocketDelegate {
199188 }
200189 }
201190
202- private func enumerateSubteams( subteams: [ String : AnyObject ] ? ) {
191+ internal func enumerateSubteams( subteams: [ String : AnyObject ] ? ) {
203192 if let subteams = subteams {
204193 if let all = subteams [ " all " ] as? [ [ String : AnyObject ] ] {
205194 for item in all {
@@ -217,8 +206,7 @@ public class Client: WebSocketDelegate {
217206 }
218207
219208 // MARK: - WebSocketDelegate
220- public func websocketDidConnect( socket: WebSocket ) {
221- }
209+ public func websocketDidConnect( socket: WebSocket ) { }
222210
223211 public func websocketDidDisconnect( socket: WebSocket , error: NSError ? ) {
224212 connected = false
@@ -241,7 +229,6 @@ public class Client: WebSocketDelegate {
241229 }
242230 }
243231
244- public func websocketDidReceiveData( socket: WebSocket , data: NSData ) {
245- }
232+ public func websocketDidReceiveData( socket: WebSocket , data: NSData ) { }
246233
247234}
0 commit comments