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

Commit 6e5eada

Browse files
authored
Merge pull request #5 from SlackKit/exclude-members
Exclude members
2 parents 69eefe9 + 1c0ef19 commit 6e5eada

File tree

2 files changed

+58
-35
lines changed

2 files changed

+58
-35
lines changed

Sources/NetworkInterface.swift

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -130,33 +130,8 @@ public struct NetworkInterface {
130130
request.httpMethod = "POST"
131131
let boundaryConstant = randomBoundary()
132132
let contentType = "multipart/form-data; boundary=" + boundaryConstant
133-
let boundaryStart = "--\(boundaryConstant)\r\n"
134-
let boundaryEnd = "--\(boundaryConstant)--\r\n"
135-
let contentDispositionString = "Content-Disposition: form-data; name=\"file\"; filename=\"\(filename)\"\r\n"
136-
let contentTypeString = "Content-Type: \(filetype)\r\n\r\n"
137-
let dataEnd = "\r\n"
138-
139-
guard
140-
let boundaryStartData = boundaryStart.data(using: .utf8),
141-
let dispositionData = contentDispositionString.data(using: .utf8),
142-
let contentTypeData = contentTypeString.data(using: .utf8),
143-
let boundaryEndData = boundaryEnd.data(using: .utf8),
144-
let dataEndData = dataEnd.data(using: .utf8)
145-
else {
146-
errorClosure(SlackError.clientNetworkError)
147-
return
148-
}
149-
150-
var requestBodyData = Data()
151-
requestBodyData.append(contentsOf: boundaryStartData)
152-
requestBodyData.append(contentsOf: dispositionData)
153-
requestBodyData.append(contentsOf: contentTypeData)
154-
requestBodyData.append(contentsOf: data)
155-
requestBodyData.append(contentsOf: dataEndData)
156-
requestBodyData.append(contentsOf: boundaryEndData)
157-
158133
request.setValue(contentType, forHTTPHeaderField: "Content-Type")
159-
request.httpBody = requestBodyData as Data
134+
request.httpBody = requestBodyData(data: data, boundaryConstant: boundaryConstant, filename: filename, filetype: filetype)
160135

161136
session.dataTask(with: request) {(data, response, publicError) in
162137
do {
@@ -201,6 +176,33 @@ public struct NetworkInterface {
201176
}
202177
}
203178

179+
private func requestBodyData(data: Data, boundaryConstant: String, filename: String, filetype: String) -> Data? {
180+
let boundaryStart = "--\(boundaryConstant)\r\n"
181+
let boundaryEnd = "--\(boundaryConstant)--\r\n"
182+
let contentDispositionString = "Content-Disposition: form-data; name=\"file\"; filename=\"\(filename)\"\r\n"
183+
let contentTypeString = "Content-Type: \(filetype)\r\n\r\n"
184+
let dataEnd = "\r\n"
185+
186+
guard
187+
let boundaryStartData = boundaryStart.data(using: .utf8),
188+
let dispositionData = contentDispositionString.data(using: .utf8),
189+
let contentTypeData = contentTypeString.data(using: .utf8),
190+
let boundaryEndData = boundaryEnd.data(using: .utf8),
191+
let dataEndData = dataEnd.data(using: .utf8)
192+
else {
193+
return nil
194+
}
195+
196+
var requestBodyData = Data()
197+
requestBodyData.append(contentsOf: boundaryStartData)
198+
requestBodyData.append(contentsOf: dispositionData)
199+
requestBodyData.append(contentsOf: contentTypeData)
200+
requestBodyData.append(contentsOf: data)
201+
requestBodyData.append(contentsOf: dataEndData)
202+
requestBodyData.append(contentsOf: boundaryEndData)
203+
return requestBodyData
204+
}
205+
204206
private func randomBoundary() -> String {
205207
#if os(Linux)
206208
return "slackkit.boundary.\(Int(random()))\(Int(random()))"

Sources/WebAPI.swift

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,13 @@ extension WebAPI {
141141
}
142142
}
143143

144-
public func channelsList(excludeArchived: Bool = false, success: ((_ channels: [[String: Any]]?) -> Void)?, failure: FailureClosure?) {
145-
list(.channelsList, type:.channel, excludeArchived: excludeArchived, success: {(channels) in
144+
public func channelsList(
145+
excludeArchived: Bool = false,
146+
excludeMembers: Bool = false,
147+
success: ((_ channels: [[String: Any]]?) -> Void)?,
148+
failure: FailureClosure?
149+
) {
150+
list(.channelsList, type:.channel, excludeArchived: excludeArchived, excludeMembers: excludeMembers, success: {(channels) in
146151
success?(channels)
147152
}) {(error) in
148153
failure?(error)
@@ -473,8 +478,13 @@ extension WebAPI {
473478
}
474479
}
475480

476-
public func groupsList(excludeArchived: Bool = false, success: ((_ channels: [[String: Any]]?) -> Void)?, failure: FailureClosure?) {
477-
list(.groupsList, type:.group, excludeArchived: excludeArchived, success: {(channels) in
481+
public func groupsList(
482+
excludeArchived: Bool = false,
483+
excludeMembers: Bool = false,
484+
success: ((_ channels: [[String: Any]]?) -> Void)?,
485+
failure: FailureClosure?
486+
) {
487+
list(.groupsList, type:.group, excludeArchived: excludeArchived, excludeMembers: excludeMembers, success: {(channels) in
478488
success?(channels)
479489
}) {(error) in
480490
failure?(error)
@@ -549,8 +559,13 @@ extension WebAPI {
549559
}
550560
}
551561

552-
public func imsList(excludeArchived: Bool = false, success: ((_ channels: [[String: Any]]?) -> Void)?, failure: FailureClosure?) {
553-
list(.imList, type:.im, excludeArchived: excludeArchived, success: {(channels) in
562+
public func imsList(
563+
excludeArchived: Bool = false,
564+
excludeMembers: Bool = false,
565+
success: ((_ channels: [[String: Any]]?) -> Void)?,
566+
failure: FailureClosure?
567+
) {
568+
list(.imList, type:.im, excludeArchived: excludeArchived, excludeMembers: excludeMembers, success: {(channels) in
554569
success?(channels)
555570
}) {(error) in
556571
failure?(error)
@@ -610,8 +625,13 @@ extension WebAPI {
610625
}
611626
}
612627

613-
public func mpimsList(excludeArchived: Bool = false, success: ((_ channels: [[String: Any]]?) -> Void)?, failure: FailureClosure?) {
614-
list(.mpimList, type:.group, excludeArchived: excludeArchived, success: {(channels) in
628+
public func mpimsList(
629+
excludeArchived: Bool = false,
630+
excludeMembers: Bool = false,
631+
success: ((_ channels: [[String: Any]]?) -> Void)?,
632+
failure: FailureClosure?
633+
) {
634+
list(.mpimList, type:.group, excludeArchived: excludeArchived, excludeMembers: excludeMembers, success: {(channels) in
615635
success?(channels)
616636
}) {(error) in
617637
failure?(error)
@@ -1096,10 +1116,11 @@ extension WebAPI {
10961116
_ endpoint: Endpoint,
10971117
type: ChannelType,
10981118
excludeArchived: Bool = false,
1119+
excludeMembers: Bool = false,
10991120
success: ((_ channels: [[String: Any]]?) -> Void)?,
11001121
failure: FailureClosure?
11011122
) {
1102-
let parameters: [String: Any] = ["token": token, "exclude_archived": excludeArchived]
1123+
let parameters: [String: Any] = ["token": token, "exclude_archived": excludeArchived, "exclude_members": excludeMembers]
11031124
networkInterface.request(endpoint, parameters: parameters, successClosure: {(response) in
11041125
success?(response[type.rawValue+"s"] as? [[String: Any]])
11051126
}) {(error) in

0 commit comments

Comments
 (0)