Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #1087 Add admin.conversations.bulk{Archive|Delete|Move} API method support #1090

Merged
merged 3 commits into from
Nov 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions json-logs/samples/api/admin.conversations.bulkArchive.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"ok": false,
"error": "",
"needed": "",
"provided": "",
"bulk_action_id": "",
"not_added": [
{
"channel_id": "C00000000",
"errors": [
""
]
}
],
"response_metadata": {
"messages": [
""
]
}
}
20 changes: 20 additions & 0 deletions json-logs/samples/api/admin.conversations.bulkDelete.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"ok": false,
"error": "",
"needed": "",
"provided": "",
"bulk_action_id": "",
"not_added": [
{
"channel_id": "",
"errors": [
""
]
}
],
"response_metadata": {
"messages": [
""
]
}
}
20 changes: 20 additions & 0 deletions json-logs/samples/api/admin.conversations.bulkMove.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"ok": false,
"bulk_action_id": "",
"not_added": [
{
"channel_id": "",
"errors": [
""
]
}
],
"error": "",
"needed": "",
"provided": "",
"response_metadata": {
"messages": [
""
]
}
}
7 changes: 6 additions & 1 deletion json-logs/samples/api/admin.conversations.create.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,10 @@
"channel_id": "C00000000",
"error": "",
"needed": "",
"provided": ""
"provided": "",
"response_metadata": {
"messages": [
""
]
}
}
3 changes: 2 additions & 1 deletion json-logs/samples/api/users.list.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@
"is_admin": false,
"is_owner": false,
"teams": [
""
"",
"T00000000"
],
"is_primary_owner": false
},
Expand Down
3 changes: 3 additions & 0 deletions metadata/web-api/rate_limit_tiers.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
"admin.barriers.list": "Tier2",
"admin.barriers.update": "Tier2",
"admin.conversations.archive": "Tier2",
"admin.conversations.bulkArchive": "Tier2",
"admin.conversations.bulkDelete": "Tier2",
"admin.conversations.bulkMove": "Tier2",
"admin.conversations.convertToPrivate": "Tier2",
"admin.conversations.create": "Tier2",
"admin.conversations.delete": "Tier2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,18 @@ CompletableFuture<AdminConversationsRestrictAccessListGroupsResponse> adminConve

CompletableFuture<AdminConversationsSetCustomRetentionResponse> adminConversationsSetCustomRetention(RequestConfigurator<AdminConversationsSetCustomRetentionRequest.AdminConversationsSetCustomRetentionRequestBuilder> req);

CompletableFuture<AdminConversationsBulkArchiveResponse> adminConversationsBulkArchive(AdminConversationsBulkArchiveRequest req);

CompletableFuture<AdminConversationsBulkArchiveResponse> adminConversationsBulkArchive(RequestConfigurator<AdminConversationsBulkArchiveRequest.AdminConversationsBulkArchiveRequestBuilder> req);

CompletableFuture<AdminConversationsBulkDeleteResponse> adminConversationsBulkDelete(AdminConversationsBulkDeleteRequest req);

CompletableFuture<AdminConversationsBulkDeleteResponse> adminConversationsBulkDelete(RequestConfigurator<AdminConversationsBulkDeleteRequest.AdminConversationsBulkDeleteRequestBuilder> req);

CompletableFuture<AdminConversationsBulkMoveResponse> adminConversationsBulkMove(AdminConversationsBulkMoveRequest req);

CompletableFuture<AdminConversationsBulkMoveResponse> adminConversationsBulkMove(RequestConfigurator<AdminConversationsBulkMoveRequest.AdminConversationsBulkMoveRequestBuilder> req);

// ------------------------------
// admin.conversations.ekm
// ------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ private Methods() {
public static final String ADMIN_CONVERSATIONS_REMOVE_CUSTOM_RETENTION = "admin.conversations.removeCustomRetention";
public static final String ADMIN_CONVERSATIONS_SET_CUSTOM_RETENTION = "admin.conversations.setCustomRetention";

public static final String ADMIN_CONVERSATIONS_BULK_ARCHIVE = "admin.conversations.bulkArchive";
public static final String ADMIN_CONVERSATIONS_BULK_DELETE = "admin.conversations.bulkDelete";
public static final String ADMIN_CONVERSATIONS_BULK_MOVE = "admin.conversations.bulkMove";

// ------------------------------
// admin.conversations.ekm
// ------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,18 @@ <T extends SlackApiTextResponse> T postFormWithAuthorizationHeaderAndParseRespon

AdminConversationsSetCustomRetentionResponse adminConversationsSetCustomRetention(RequestConfigurator<AdminConversationsSetCustomRetentionRequest.AdminConversationsSetCustomRetentionRequestBuilder> req) throws IOException, SlackApiException;

AdminConversationsBulkArchiveResponse adminConversationsBulkArchive(AdminConversationsBulkArchiveRequest req) throws IOException, SlackApiException;

AdminConversationsBulkArchiveResponse adminConversationsBulkArchive(RequestConfigurator<AdminConversationsBulkArchiveRequest.AdminConversationsBulkArchiveRequestBuilder> req) throws IOException, SlackApiException;

AdminConversationsBulkDeleteResponse adminConversationsBulkDelete(AdminConversationsBulkDeleteRequest req) throws IOException, SlackApiException;

AdminConversationsBulkDeleteResponse adminConversationsBulkDelete(RequestConfigurator<AdminConversationsBulkDeleteRequest.AdminConversationsBulkDeleteRequestBuilder> req) throws IOException, SlackApiException;

AdminConversationsBulkMoveResponse adminConversationsBulkMove(AdminConversationsBulkMoveRequest req) throws IOException, SlackApiException;

AdminConversationsBulkMoveResponse adminConversationsBulkMove(RequestConfigurator<AdminConversationsBulkMoveRequest.AdminConversationsBulkMoveRequestBuilder> req) throws IOException, SlackApiException;

// ------------------------------
// admin.conversations.ekm
// ------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ public static void setRateLimitTier(String methodName, MethodsRateLimitTier tier
ADMIN_CONVERSATIONS_GET_CUSTOM_RETENTION,
ADMIN_CONVERSATIONS_REMOVE_CUSTOM_RETENTION,
ADMIN_CONVERSATIONS_SET_CUSTOM_RETENTION,
ADMIN_CONVERSATIONS_BULK_ARCHIVE,
ADMIN_CONVERSATIONS_BULK_DELETE,
ADMIN_CONVERSATIONS_BULK_MOVE,

ADMIN_EMOJI_ADD,
ADMIN_EMOJI_ADD_ALIAS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,31 @@ public static FormBody.Builder toForm(AdminConversationsUnarchiveRequest req) {
return form;
}

public static FormBody.Builder toForm(AdminConversationsBulkArchiveRequest req) {
FormBody.Builder form = new FormBody.Builder();
if (req.getChannelIds() != null) {
setIfNotNull("channel_ids", req.getChannelIds().stream().collect(joining(",")), form);
}
return form;
}

public static FormBody.Builder toForm(AdminConversationsBulkDeleteRequest req) {
FormBody.Builder form = new FormBody.Builder();
if (req.getChannelIds() != null) {
setIfNotNull("channel_ids", req.getChannelIds().stream().collect(joining(",")), form);
}
return form;
}

public static FormBody.Builder toForm(AdminConversationsBulkMoveRequest req) {
FormBody.Builder form = new FormBody.Builder();
if (req.getChannelIds() != null) {
setIfNotNull("channel_ids", req.getChannelIds().stream().collect(joining(",")), form);
}
setIfNotNull("target_team_id", req.getTargetTeamId(), form);
return form;
}

public static FormBody.Builder toForm(AdminConversationsEkmListOriginalConnectedChannelInfoRequest req) {
FormBody.Builder form = new FormBody.Builder();
if (req.getChannelIds() != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -587,6 +587,36 @@ public CompletableFuture<AdminConversationsSetCustomRetentionResponse> adminConv
return adminConversationsSetCustomRetention(req.configure(AdminConversationsSetCustomRetentionRequest.builder()).build());
}

@Override
public CompletableFuture<AdminConversationsBulkArchiveResponse> adminConversationsBulkArchive(AdminConversationsBulkArchiveRequest req) {
return executor.execute(ADMIN_CONVERSATIONS_BULK_ARCHIVE, toMap(req), () -> methods.adminConversationsBulkArchive(req));
}

@Override
public CompletableFuture<AdminConversationsBulkArchiveResponse> adminConversationsBulkArchive(RequestConfigurator<AdminConversationsBulkArchiveRequest.AdminConversationsBulkArchiveRequestBuilder> req) {
return adminConversationsBulkArchive(req.configure(AdminConversationsBulkArchiveRequest.builder()).build());
}

@Override
public CompletableFuture<AdminConversationsBulkDeleteResponse> adminConversationsBulkDelete(AdminConversationsBulkDeleteRequest req) {
return executor.execute(ADMIN_CONVERSATIONS_BULK_DELETE, toMap(req), () -> methods.adminConversationsBulkDelete(req));
}

@Override
public CompletableFuture<AdminConversationsBulkDeleteResponse> adminConversationsBulkDelete(RequestConfigurator<AdminConversationsBulkDeleteRequest.AdminConversationsBulkDeleteRequestBuilder> req) {
return adminConversationsBulkDelete(req.configure(AdminConversationsBulkDeleteRequest.builder()).build());
}

@Override
public CompletableFuture<AdminConversationsBulkMoveResponse> adminConversationsBulkMove(AdminConversationsBulkMoveRequest req) {
return executor.execute(ADMIN_CONVERSATIONS_BULK_MOVE, toMap(req), () -> methods.adminConversationsBulkMove(req));
}

@Override
public CompletableFuture<AdminConversationsBulkMoveResponse> adminConversationsBulkMove(RequestConfigurator<AdminConversationsBulkMoveRequest.AdminConversationsBulkMoveRequestBuilder> req) {
return adminConversationsBulkMove(req.configure(AdminConversationsBulkMoveRequest.builder()).build());
}

@Override
public CompletableFuture<AdminConversationsEkmListOriginalConnectedChannelInfoResponse> adminConversationsEkmListOriginalConnectedChannelInfo(AdminConversationsEkmListOriginalConnectedChannelInfoRequest req) {
return executor.execute(ADMIN_CONVERSATIONS_EKM_LIST_ORIGINAL_CONNECTED_CHANNEL_INFO, toMap(req), () -> methods.adminConversationsEkmListOriginalConnectedChannelInfo(req));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,36 @@ public AdminConversationsSetCustomRetentionResponse adminConversationsSetCustomR
return adminConversationsSetCustomRetention(req.configure(AdminConversationsSetCustomRetentionRequest.builder()).build());
}

@Override
public AdminConversationsBulkArchiveResponse adminConversationsBulkArchive(AdminConversationsBulkArchiveRequest req) throws IOException, SlackApiException {
return postFormWithTokenAndParseResponse(toForm(req), Methods.ADMIN_CONVERSATIONS_BULK_ARCHIVE, getToken(req), AdminConversationsBulkArchiveResponse.class);
}

@Override
public AdminConversationsBulkArchiveResponse adminConversationsBulkArchive(RequestConfigurator<AdminConversationsBulkArchiveRequest.AdminConversationsBulkArchiveRequestBuilder> req) throws IOException, SlackApiException {
return adminConversationsBulkArchive(req.configure(AdminConversationsBulkArchiveRequest.builder()).build());
}

@Override
public AdminConversationsBulkDeleteResponse adminConversationsBulkDelete(AdminConversationsBulkDeleteRequest req) throws IOException, SlackApiException {
return postFormWithTokenAndParseResponse(toForm(req), Methods.ADMIN_CONVERSATIONS_BULK_DELETE, getToken(req), AdminConversationsBulkDeleteResponse.class);
}

@Override
public AdminConversationsBulkDeleteResponse adminConversationsBulkDelete(RequestConfigurator<AdminConversationsBulkDeleteRequest.AdminConversationsBulkDeleteRequestBuilder> req) throws IOException, SlackApiException {
return adminConversationsBulkDelete(req.configure(AdminConversationsBulkDeleteRequest.builder()).build());
}

@Override
public AdminConversationsBulkMoveResponse adminConversationsBulkMove(AdminConversationsBulkMoveRequest req) throws IOException, SlackApiException {
return postFormWithTokenAndParseResponse(toForm(req), Methods.ADMIN_CONVERSATIONS_BULK_MOVE, getToken(req), AdminConversationsBulkMoveResponse.class);
}

@Override
public AdminConversationsBulkMoveResponse adminConversationsBulkMove(RequestConfigurator<AdminConversationsBulkMoveRequest.AdminConversationsBulkMoveRequestBuilder> req) throws IOException, SlackApiException {
return adminConversationsBulkMove(req.configure(AdminConversationsBulkMoveRequest.builder()).build());
}

@Override
public AdminConversationsEkmListOriginalConnectedChannelInfoResponse adminConversationsEkmListOriginalConnectedChannelInfo(AdminConversationsEkmListOriginalConnectedChannelInfoRequest req) throws IOException, SlackApiException {
return postFormWithTokenAndParseResponse(toForm(req), Methods.ADMIN_CONVERSATIONS_EKM_LIST_ORIGINAL_CONNECTED_CHANNEL_INFO, getToken(req), AdminConversationsEkmListOriginalConnectedChannelInfoResponse.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.slack.api.methods.request.admin.conversations;

import com.slack.api.methods.SlackApiRequest;
import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
* https://api.slack.com/methods/admin.conversations.bulkArchive
*/
@Data
@Builder
public class AdminConversationsBulkArchiveRequest implements SlackApiRequest {

/**
* Authentication token bearing required scopes.
*/
private String token;

/**
* An array of channel IDs.
*/
private List<String> channelIds;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.slack.api.methods.request.admin.conversations;

import com.slack.api.methods.SlackApiRequest;
import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
* https://api.slack.com/methods/admin.conversations.bulkDelete
*/
@Data
@Builder
public class AdminConversationsBulkDeleteRequest implements SlackApiRequest {

/**
* Authentication token bearing required scopes.
*/
private String token;

/**
* An array of channel IDs.
*/
private List<String> channelIds;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.slack.api.methods.request.admin.conversations;

import com.slack.api.methods.SlackApiRequest;
import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
* https://api.slack.com/methods/admin.conversations.bulkMove
*/
@Data
@Builder
public class AdminConversationsBulkMoveRequest implements SlackApiRequest {

/**
* Authentication token bearing required scopes.
*/
private String token;

/**
* An array of channel IDs.
*/
private List<String> channelIds;

/**
* Target team ID
*/
private String targetTeamId;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.slack.api.methods.response.admin.conversations;

import com.slack.api.methods.SlackApiTextResponse;
import com.slack.api.model.ErrorResponseMetadata;
import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class AdminConversationsBulkArchiveResponse implements SlackApiTextResponse {

private boolean ok;
private String warning;
private String error;
private String needed;
private String provided;
private transient Map<String, List<String>> httpResponseHeaders;

private String bulkActionId;
private List<NotAdded> notAdded;
private ErrorResponseMetadata responseMetadata;

@Data
public static class NotAdded {
private String channelId;
private List<String> errors;
}
}
Loading