Skip to content
This repository was archived by the owner on Jan 28, 2019. It is now read-only.

Commit fda00fa

Browse files
authored
Merge pull request #9 from rafalwojcik/create_channel
Add create channel method to WebAPI
2 parents 523c922 + f2dcf0f commit fda00fa

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ SlackKit currently supports the a subset of the Slack Web API that is available
8484
| `channels.info`|
8585
| `channels.list`|
8686
| `channels.mark`|
87+
| `channels.create`|
88+
| `channels.invite`|
8789
| `channels.setPurpose`|
8890
| `channels.setTopic`|
8991
| `chat.delete`|
@@ -132,4 +134,3 @@ SlackKit currently supports the a subset of the Slack Web API that is available
132134
| `users.list`|
133135
| `users.setActive`|
134136
| `users.setPresence`|
135-

Sources/Endpoint.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public enum Endpoint: String {
2929
case channelsInfo = "channels.info"
3030
case channelsList = "channels.list"
3131
case channelsMark = "channels.mark"
32+
case channelsCreate = "channels.create"
33+
case channelsInvite = "channels.invite"
3234
case channelsSetPurpose = "channels.setPurpose"
3335
case channelsSetTopic = "channels.setTopic"
3436
case chatDelete = "chat.delete"

Sources/WebAPI.swift

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,14 @@ extension WebAPI {
195195
}
196196
}
197197

198+
public func createChannel(channel: String, success: ChannelClosure?, failure: FailureClosure?) {
199+
create(.channelsCreate, name: channel, success: success, failure: failure)
200+
}
201+
202+
public func inviteToChannel(_ channelID: String, userID: String, success: SuccessClosure?, failure: FailureClosure?) {
203+
invite(.channelsInvite, channelID: channelID, userID: userID, success: success, failure: failure)
204+
}
205+
198206
public func setChannelPurpose(channel: String, purpose: String, success: SuccessClosure?, failure: FailureClosure?) {
199207
setInfo(.channelsSetPurpose, type: .purpose, channel: channel, text: purpose, success: {(purposeSet) in
200208
success?(purposeSet)
@@ -1191,4 +1199,33 @@ extension WebAPI {
11911199
failure?(error)
11921200
}
11931201
}
1202+
1203+
fileprivate func create(
1204+
_ endpoint: Endpoint,
1205+
name: String,
1206+
success: ChannelClosure?,
1207+
failure: FailureClosure?
1208+
) {
1209+
let parameters: [String: Any] = ["token": token, "name": name]
1210+
networkInterface.request(endpoint, parameters: parameters, successClosure: {(response) in
1211+
success?(Channel(channel: response["channel"] as? [String: Any]))
1212+
}) {(error) in
1213+
failure?(error)
1214+
}
1215+
}
1216+
1217+
fileprivate func invite(
1218+
_ endpoint: Endpoint,
1219+
channelID: String,
1220+
userID: String,
1221+
success: SuccessClosure?,
1222+
failure: FailureClosure?
1223+
) {
1224+
let parameters: [String: Any] = ["token": token, "channel": channelID, "user": userID]
1225+
networkInterface.request(endpoint, parameters: parameters, successClosure: {(response) in
1226+
success?(true)
1227+
}) {(error) in
1228+
failure?(error)
1229+
}
1230+
}
11941231
}

0 commit comments

Comments
 (0)