From 001d656dbec7c8903f96223cbfc4815e7418b06c Mon Sep 17 00:00:00 2001 From: Arkadiusz Adamski Date: Thu, 25 Mar 2021 11:41:42 +0100 Subject: [PATCH 1/4] Add conversetions.open --- SKWebAPI/Sources/Endpoint.swift | 5 ++++- SKWebAPI/Sources/WebAPI.swift | 34 +++++++++++++++++++++++---------- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/SKWebAPI/Sources/Endpoint.swift b/SKWebAPI/Sources/Endpoint.swift index 2b631e7..344c5d3 100755 --- a/SKWebAPI/Sources/Endpoint.swift +++ b/SKWebAPI/Sources/Endpoint.swift @@ -48,6 +48,7 @@ public enum Endpoint: String { case conversationsReplies = "conversations.replies" case conversationsMembers = "conversations.members" case conversationsHistory = "conversations.history" + case conversationsOpen = "conversations.open" case dndInfo = "dnd.info" case dndTeamInfo = "dnd.teamInfo" case emojiList = "emoji.list" @@ -69,7 +70,6 @@ public enum Endpoint: String { case imHistory = "im.history" case imList = "im.list" case imMark = "im.mark" - case imOpen = "im.open" case mpimClose = "mpim.close" case mpimHistory = "mpim.history" case mpimList = "mpim.list" @@ -99,4 +99,7 @@ public enum Endpoint: String { case searchAll = "search.all" case searchFiles = "search.files" case searchMessages = "search.messages" + + // MARK: - Deprecated endpoints + case imOpen = "im.open" } diff --git a/SKWebAPI/Sources/WebAPI.swift b/SKWebAPI/Sources/WebAPI.swift index c7dd8d2..20cbd16 100755 --- a/SKWebAPI/Sources/WebAPI.swift +++ b/SKWebAPI/Sources/WebAPI.swift @@ -682,16 +682,6 @@ extension WebAPI { failure?(error) } } - - public func openIM(userID: String, success: ((_ imID: String?) -> Void)?, failure: FailureClosure?) { - let parameters = ["user": userID] - networkInterface.request(.imOpen, accessToken: token, parameters: parameters, successClosure: {(response) in - let group = response["channel"] as? [String: Any] - success?(group?["id"] as? String) - }) {(error) in - failure?(error) - } - } } // MARK: - MPIM @@ -1327,6 +1317,16 @@ extension WebAPI { failure?(error) } } + + public func openConversations(userIDs: [String], success: ((_ imID: String?) -> Void)?, failure: FailureClosure?) { + let parameters = ["users": userIDs.joined(separator: ",")] + networkInterface.request(.conversationsOpen, accessToken: token, parameters: parameters, successClosure: {(response) in + let group = response["channel"] as? [String: Any] + success?(group?["id"] as? String) + }) {(error) in + failure?(error) + } + } } // MARK: - Search @@ -1678,3 +1678,17 @@ extension WebAPI { } } } + +// MARK: - Deprecated +extension WebAPI { + @available(*, deprecated, message: "Use openConversation instead.") + public func openIM(userID: String, success: ((_ imID: String?) -> Void)?, failure: FailureClosure?) { + let parameters = ["user": userID] + networkInterface.request(.imOpen, accessToken: token, parameters: parameters, successClosure: {(response) in + let group = response["channel"] as? [String: Any] + success?(group?["id"] as? String) + }) {(error) in + failure?(error) + } + } +} From 2baa68387c0c571852a3d949c8d7734f5a35eeae Mon Sep 17 00:00:00 2001 From: Arkadiusz Adamski Date: Fri, 15 Oct 2021 08:56:17 +0200 Subject: [PATCH 2/4] Mark deprected channels.* methods --- SKWebAPI/Sources/Endpoint.swift | 14 ++--- SKWebAPI/Sources/WebAPI.swift | 100 ++++++++++++++++++-------------- 2 files changed, 62 insertions(+), 52 deletions(-) diff --git a/SKWebAPI/Sources/Endpoint.swift b/SKWebAPI/Sources/Endpoint.swift index 344c5d3..ab801dd 100755 --- a/SKWebAPI/Sources/Endpoint.swift +++ b/SKWebAPI/Sources/Endpoint.swift @@ -26,14 +26,7 @@ public enum Endpoint: String { case authRevoke = "auth.revoke" case authTest = "auth.test" case channelsHistory = "channels.history" - case channelsInfo = "channels.info" - case channelsList = "channels.list" - case channelsMark = "channels.mark" - case channelsCreate = "channels.create" - case channelsInvite = "channels.invite" - case channelsJoin = "channels.join" case channelsLeave = "channels.leave" - case channelsArchive = "channels.archive" case channelsUnarchive = "channels.unarchive" case channelsRename = "channels.rename" case channelsKick = "channels.kick" @@ -101,5 +94,12 @@ public enum Endpoint: String { case searchMessages = "search.messages" // MARK: - Deprecated endpoints + case channelsArchive = "channels.archive" + case channelsCreate = "channels.create" + case channelsInfo = "channels.info" + case channelsInvite = "channels.invite" + case channelsJoin = "channels.join" + case channelsList = "channels.list" + case channelsMark = "channels.mark" case imOpen = "im.open" } diff --git a/SKWebAPI/Sources/WebAPI.swift b/SKWebAPI/Sources/WebAPI.swift index 20cbd16..7e02cc1 100755 --- a/SKWebAPI/Sources/WebAPI.swift +++ b/SKWebAPI/Sources/WebAPI.swift @@ -172,56 +172,11 @@ extension WebAPI { failure?(error) } } - - public func channelInfo(id: String, success: ChannelClosure?, failure: FailureClosure?) { - info(.channelsInfo, type:.channel, id: id, success: {(channel) in - success?(channel) - }) {(error) in - failure?(error) - } - } - - public func channelsList( - excludeArchived: Bool = false, - excludeMembers: Bool = false, - success: ((_ channels: [[String: Any]]?) -> Void)?, - failure: FailureClosure? - ) { - list(.channelsList, type:.channel, excludeArchived: excludeArchived, excludeMembers: excludeMembers, success: {(channels) in - success?(channels) - }) {(error) in - failure?(error) - } - } - - public func markChannel(channel: String, timestamp: String, success: ((_ ts: String) -> Void)?, failure: FailureClosure?) { - mark(.channelsMark, channel: channel, timestamp: timestamp, success: {(ts) in - success?(ts) - }) {(error) in - failure?(error) - } - } - - public func createChannel(channel: String, success: ChannelClosure?, failure: FailureClosure?) { - create(.channelsCreate, name: channel, success: success, failure: failure) - } - - public func inviteToChannel(_ channel: String, user: String, success: SuccessClosure?, failure: FailureClosure?) { - invite(.channelsInvite, channel: channel, user: user, success: success, failure: failure) - } - - public func channelsJoin(_ name: String, validate: Bool, success: ChannelClosure?, failure: FailureClosure?) { - join(.channelsJoin, name: name, validate: validate, success: success, failure: failure) - } public func channelsLeave(_ channel: String, success: SuccessClosure?, failure: FailureClosure?) { leave(.channelsLeave, channel: channel, success: success, failure: failure) } - public func channelsArchive(_ channel: String, success: SuccessClosure?, failure: FailureClosure?) { - archive(.channelsArchive, channel: channel, success: success, failure: failure) - } - public func channelsUnarchive(_ channel: String, success: SuccessClosure?, failure: FailureClosure?) { unarchive(.channelsUnarchive, channel: channel, success: success, failure: failure) } @@ -1681,6 +1636,61 @@ extension WebAPI { // MARK: - Deprecated extension WebAPI { + + // MARK: channels.* + @available(*, deprecated) + public func channelsArchive(_ channel: String, success: SuccessClosure?, failure: FailureClosure?) { + archive(.channelsArchive, channel: channel, success: success, failure: failure) + } + + @available(*, deprecated) + public func createChannel(channel: String, success: ChannelClosure?, failure: FailureClosure?) { + create(.channelsCreate, name: channel, success: success, failure: failure) + } + + @available(*, deprecated) + public func channelInfo(id: String, success: ChannelClosure?, failure: FailureClosure?) { + info(.channelsInfo, type:.channel, id: id, success: {(channel) in + success?(channel) + }) {(error) in + failure?(error) + } + } + + @available(*, deprecated) + public func inviteToChannel(_ channel: String, user: String, success: SuccessClosure?, failure: FailureClosure?) { + invite(.channelsInvite, channel: channel, user: user, success: success, failure: failure) + } + + @available(*, deprecated) + public func channelsJoin(_ name: String, validate: Bool, success: ChannelClosure?, failure: FailureClosure?) { + join(.channelsJoin, name: name, validate: validate, success: success, failure: failure) + } + + @available(*, deprecated) + public func channelsList( + excludeArchived: Bool = false, + excludeMembers: Bool = false, + success: ((_ channels: [[String: Any]]?) -> Void)?, + failure: FailureClosure? + ) { + list(.channelsList, type:.channel, excludeArchived: excludeArchived, excludeMembers: excludeMembers, success: {(channels) in + success?(channels) + }) {(error) in + failure?(error) + } + } + + @available(*, deprecated) + public func markChannel(channel: String, timestamp: String, success: ((_ ts: String) -> Void)?, failure: FailureClosure?) { + mark(.channelsMark, channel: channel, timestamp: timestamp, success: {(ts) in + success?(ts) + }) {(error) in + failure?(error) + } + } + + // MARK: im.* @available(*, deprecated, message: "Use openConversation instead.") public func openIM(userID: String, success: ((_ imID: String?) -> Void)?, failure: FailureClosure?) { let parameters = ["user": userID] From f0e4117e7b3e0d6bfc7ff3b3f30c11a2dfc200b2 Mon Sep 17 00:00:00 2001 From: Arkadiusz Adamski Date: Fri, 15 Oct 2021 08:59:20 +0200 Subject: [PATCH 3/4] Reorder `Endpoint` for better readability --- SKWebAPI/Sources/Endpoint.swift | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/SKWebAPI/Sources/Endpoint.swift b/SKWebAPI/Sources/Endpoint.swift index ab801dd..b9ef67d 100755 --- a/SKWebAPI/Sources/Endpoint.swift +++ b/SKWebAPI/Sources/Endpoint.swift @@ -26,28 +26,28 @@ public enum Endpoint: String { case authRevoke = "auth.revoke" case authTest = "auth.test" case channelsHistory = "channels.history" + case channelsKick = "channels.kick" case channelsLeave = "channels.leave" - case channelsUnarchive = "channels.unarchive" case channelsRename = "channels.rename" - case channelsKick = "channels.kick" case channelsSetPurpose = "channels.setPurpose" case channelsSetTopic = "channels.setTopic" + case channelsUnarchive = "channels.unarchive" case chatDelete = "chat.delete" - case chatPostMessage = "chat.postMessage" - case chatPostEphemeral = "chat.postEphemeral" case chatMeMessage = "chat.meMessage" + case chatPostEphemeral = "chat.postEphemeral" + case chatPostMessage = "chat.postMessage" case chatUpdate = "chat.update" + case conversationsHistory = "conversations.history" case conversationsList = "conversations.list" - case conversationsReplies = "conversations.replies" case conversationsMembers = "conversations.members" - case conversationsHistory = "conversations.history" case conversationsOpen = "conversations.open" + case conversationsReplies = "conversations.replies" case dndInfo = "dnd.info" case dndTeamInfo = "dnd.teamInfo" case emojiList = "emoji.list" case filesCommentsAdd = "files.comments.add" - case filesCommentsEdit = "files.comments.edit" case filesCommentsDelete = "files.comments.delete" + case filesCommentsEdit = "files.comments.edit" case filesDelete = "files.delete" case filesInfo = "files.info" case filesUpload = "files.upload" @@ -69,29 +69,29 @@ public enum Endpoint: String { case mpimMark = "mpim.mark" case mpimOpen = "mpim.open" case oauthAccess = "oauth.v2.access" - case pinsList = "pins.list" case pinsAdd = "pins.add" + case pinsList = "pins.list" case pinsRemove = "pins.remove" case reactionsAdd = "reactions.add" case reactionsGet = "reactions.get" case reactionsList = "reactions.list" case reactionsRemove = "reactions.remove" - case rtmStart = "rtm.start" case rtmConnect = "rtm.connect" + case rtmStart = "rtm.start" + case searchAll = "search.all" + case searchFiles = "search.files" + case searchMessages = "search.messages" case starsAdd = "stars.add" case starsRemove = "stars.remove" case teamInfo = "team.info" + case usersConversations = "users.conversations" case usersGetPresence = "users.getPresence" case usersInfo = "users.info" case usersList = "users.list" - case usersConversations = "users.conversations" case usersLookupByEmail = "users.lookupByEmail" case usersProfileSet = "users.profile.set" case usersSetActive = "users.setActive" case usersSetPresence = "users.setPresence" - case searchAll = "search.all" - case searchFiles = "search.files" - case searchMessages = "search.messages" // MARK: - Deprecated endpoints case channelsArchive = "channels.archive" From 871b304f92ce7d403539286c7fbf2f11f05b37f6 Mon Sep 17 00:00:00 2001 From: Arkadiusz Adamski Date: Fri, 15 Oct 2021 11:11:39 +0200 Subject: [PATCH 4/4] Add `conversationsArchive` and `conversationsCreate` --- SKWebAPI/Sources/Endpoint.swift | 2 ++ SKWebAPI/Sources/WebAPI.swift | 45 +++++++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/SKWebAPI/Sources/Endpoint.swift b/SKWebAPI/Sources/Endpoint.swift index b9ef67d..437b415 100755 --- a/SKWebAPI/Sources/Endpoint.swift +++ b/SKWebAPI/Sources/Endpoint.swift @@ -37,6 +37,8 @@ public enum Endpoint: String { case chatPostEphemeral = "chat.postEphemeral" case chatPostMessage = "chat.postMessage" case chatUpdate = "chat.update" + case conversationsArchive = "conversations.archive" + case conversationsCreate = "conversations.create" case conversationsHistory = "conversations.history" case conversationsList = "conversations.list" case conversationsMembers = "conversations.members" diff --git a/SKWebAPI/Sources/WebAPI.swift b/SKWebAPI/Sources/WebAPI.swift index 7e02cc1..a5dbf67 100755 --- a/SKWebAPI/Sources/WebAPI.swift +++ b/SKWebAPI/Sources/WebAPI.swift @@ -1169,6 +1169,35 @@ extension WebAPI { // MARK: - Conversations extension WebAPI { + public func conversationsArchive(channel: String, success: (() -> Void)?, failure: FailureClosure?) { + let parameters = ["channel": channel] + networkInterface.request(.conversationsArchive, accessToken: token, parameters: parameters, successClosure: {_ in }) {(error) in + failure?(error) + } + } + + public func conversationsCreate( + name: String, + isPrivate: Bool = false, + success: ((_ id: String?, _ name: String?, _ creator: String?) -> Void)?, + failure: FailureClosure? + ) { + let parameters = [ + "name": name, + "is_private": isPrivate + ] as [String : Any] + networkInterface.request(.conversationsOpen, accessToken: token, parameters: parameters, successClosure: {(response) in + let group = response["channel"] as? [String: Any] + success?( + group?["id"] as? String, + group?["name"] as? String, + group?["creator"] as? String + ) + }) {(error) in + failure?(error) + } + } + public func conversationsList( excludeArchived: Bool = false, cursor: String? = nil, @@ -1273,8 +1302,14 @@ extension WebAPI { } } - public func openConversations(userIDs: [String], success: ((_ imID: String?) -> Void)?, failure: FailureClosure?) { - let parameters = ["users": userIDs.joined(separator: ",")] + public func conversationsOpen( + userIDs: [String], + success: ((_ imID: String?) -> Void)?, + failure: FailureClosure? + ) { + let parameters = [ + "users": userIDs.joined(separator: ",") + ] networkInterface.request(.conversationsOpen, accessToken: token, parameters: parameters, successClosure: {(response) in let group = response["channel"] as? [String: Any] success?(group?["id"] as? String) @@ -1638,12 +1673,12 @@ extension WebAPI { extension WebAPI { // MARK: channels.* - @available(*, deprecated) + @available(*, deprecated, message: "Use conversationsArchive instead.") public func channelsArchive(_ channel: String, success: SuccessClosure?, failure: FailureClosure?) { archive(.channelsArchive, channel: channel, success: success, failure: failure) } - @available(*, deprecated) + @available(*, deprecated, message: "Use conversationsCreate instead.") public func createChannel(channel: String, success: ChannelClosure?, failure: FailureClosure?) { create(.channelsCreate, name: channel, success: success, failure: failure) } @@ -1691,7 +1726,7 @@ extension WebAPI { } // MARK: im.* - @available(*, deprecated, message: "Use openConversation instead.") + @available(*, deprecated, message: "Use conversationsOpen instead.") public func openIM(userID: String, success: ((_ imID: String?) -> Void)?, failure: FailureClosure?) { let parameters = ["user": userID] networkInterface.request(.imOpen, accessToken: token, parameters: parameters, successClosure: {(response) in