Skip to content

Commit

Permalink
Add conversations.externalInvitePermissions.set API support (#1330)
Browse files Browse the repository at this point in the history
  • Loading branch information
seratch committed Jun 25, 2024
1 parent 1b6030e commit 31a1f97
Show file tree
Hide file tree
Showing 14 changed files with 134 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"ok": false,
"error": "",
"needed": "",
"provided": ""
}
1 change: 1 addition & 0 deletions metadata/web-api/rate_limit_tiers.json
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@
"conversations.close": "Tier2",
"conversations.create": "Tier2",
"conversations.declineSharedInvite": "Tier1",
"conversations.externalInvitePermissions.set": "Tier2",
"conversations.history": "Tier3",
"conversations.info": "Tier3",
"conversations.invite": "Tier3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1033,6 +1033,10 @@ CompletableFuture<AdminConversationsWhitelistListGroupsLinkedToChannelResponse>

CompletableFuture<ConversationsCanvasesCreateResponse> conversationsCanvasesCreate(RequestConfigurator<ConversationsCanvasesCreateRequest.ConversationsCanvasesCreateRequestBuilder> req);

CompletableFuture<ConversationsExternalInvitePermissionsSetResponse> conversationsExternalInvitePermissionsSet(ConversationsExternalInvitePermissionsSetRequest req);

CompletableFuture<ConversationsExternalInvitePermissionsSetResponse> conversationsExternalInvitePermissionsSet(RequestConfigurator<ConversationsExternalInvitePermissionsSetRequest.ConversationsExternalInvitePermissionsSetRequestBuilder> req);

// -------------
// Slack Connect

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,7 @@ private Methods() {
public static final String CONVERSATIONS_LIST_CONNECT_INVITES = "conversations.listConnectInvites";

public static final String CONVERSATIONS_CANVASES_CREATE = "conversations.canvases.create";
public static final String CONVERSATIONS_EXTERNAL_INVITE_PERMISSIONS_SET = "conversations.externalInvitePermissions.set";

// ------------------------------
// dialog
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1315,6 +1315,10 @@ AdminUsergroupsRemoveChannelsResponse adminUsergroupsRemoveChannels(

ConversationsUnarchiveResponse conversationsUnarchive(RequestConfigurator<ConversationsUnarchiveRequest.ConversationsUnarchiveRequestBuilder> req) throws IOException, SlackApiException;

ConversationsExternalInvitePermissionsSetResponse conversationsExternalInvitePermissionsSet(ConversationsExternalInvitePermissionsSetRequest req) throws IOException, SlackApiException;

ConversationsExternalInvitePermissionsSetResponse conversationsExternalInvitePermissionsSet(RequestConfigurator<ConversationsExternalInvitePermissionsSetRequest.ConversationsExternalInvitePermissionsSetRequestBuilder> req) throws IOException, SlackApiException;

// -------------
// Slack Connect

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,7 @@ public static void setRateLimitTier(String methodName, MethodsRateLimitTier tier
setRateLimitTier(CONVERSATIONS_APPROVE_SHARED_INVITE, Tier1);
setRateLimitTier(CONVERSATIONS_DECLINE_SHARED_INVITE, Tier1);
setRateLimitTier(CONVERSATIONS_LIST_CONNECT_INVITES, Tier1);
setRateLimitTier(CONVERSATIONS_EXTERNAL_INVITE_PERMISSIONS_SET, Tier2);

setRateLimitTier(DIALOG_OPEN, Tier4);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1806,6 +1806,14 @@ public static FormBody.Builder toForm(ConversationsUnarchiveRequest req) {
return form;
}

public static FormBody.Builder toForm(ConversationsExternalInvitePermissionsSetRequest req) {
FormBody.Builder form = new FormBody.Builder();
setIfNotNull("action", req.getAction(), form);
setIfNotNull("channel", req.getChannel(), form);
setIfNotNull("target_team", req.getTargetTeam(), form);
return form;
}

public static FormBody.Builder toForm(ConversationsInviteSharedRequest req) {
FormBody.Builder form = new FormBody.Builder();
setIfNotNull("channel", req.getChannel(), form);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1840,6 +1840,16 @@ public CompletableFuture<ConversationsCanvasesCreateResponse> conversationsCanva
return conversationsCanvasesCreate(req.configure(ConversationsCanvasesCreateRequest.builder()).build());
}

@Override
public CompletableFuture<ConversationsExternalInvitePermissionsSetResponse> conversationsExternalInvitePermissionsSet(ConversationsExternalInvitePermissionsSetRequest req) {
return executor.execute(CONVERSATIONS_EXTERNAL_INVITE_PERMISSIONS_SET, toMap(req), () -> methods.conversationsExternalInvitePermissionsSet(req));
}

@Override
public CompletableFuture<ConversationsExternalInvitePermissionsSetResponse> conversationsExternalInvitePermissionsSet(RequestConfigurator<ConversationsExternalInvitePermissionsSetRequest.ConversationsExternalInvitePermissionsSetRequestBuilder> req) {
return conversationsExternalInvitePermissionsSet(req.configure(ConversationsExternalInvitePermissionsSetRequest.builder()).build());
}

@Override
public CompletableFuture<ConversationsInviteSharedResponse> conversationsInviteShared(ConversationsInviteSharedRequest req) {
return executor.execute(CONVERSATIONS_INVITE_SHARED, toMap(req), () -> methods.conversationsInviteShared(req));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2093,6 +2093,16 @@ public ConversationsUnarchiveResponse conversationsUnarchive(RequestConfigurator
return conversationsUnarchive(req.configure(ConversationsUnarchiveRequest.builder()).build());
}

@Override
public ConversationsExternalInvitePermissionsSetResponse conversationsExternalInvitePermissionsSet(ConversationsExternalInvitePermissionsSetRequest req) throws IOException, SlackApiException {
return postFormWithTokenAndParseResponse(toForm(req), Methods.CONVERSATIONS_EXTERNAL_INVITE_PERMISSIONS_SET, getToken(req), ConversationsExternalInvitePermissionsSetResponse.class);
}

@Override
public ConversationsExternalInvitePermissionsSetResponse conversationsExternalInvitePermissionsSet(RequestConfigurator<ConversationsExternalInvitePermissionsSetRequest.ConversationsExternalInvitePermissionsSetRequestBuilder> req) throws IOException, SlackApiException {
return conversationsExternalInvitePermissionsSet(req.configure(ConversationsExternalInvitePermissionsSetRequest.builder()).build());
}

@Override
public ConversationsInviteSharedResponse conversationsInviteShared(ConversationsInviteSharedRequest req) throws IOException, SlackApiException {
return postFormWithTokenAndParseResponse(toForm(req), Methods.CONVERSATIONS_INVITE_SHARED, getToken(req), ConversationsInviteSharedResponse.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.slack.api.methods.request.conversations;

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

/**
* https://api.slack.com/methods/conversations.externalInvitePermissions.set
*/
@Data
@Builder
public class ConversationsExternalInvitePermissionsSetRequest implements SlackApiRequest {

/**
* Authentication token bearing required scopes.
* Tokens should be passed as an HTTP Authorization header or alternatively, as a POST parameter.
*/
private String token;

/**
* Type of action to be taken: upgrade or downgrade
* Value should be one of "upgrade" and "downgrade"
*/
private String action;

/**
* The channel ID to change external invite permissions for
*/
private String channel;

/**
* The encoded team ID of the target team. Must be in the specified channel.
*/
private String targetTeam;

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

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

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

@Data
public class ConversationsExternalInvitePermissionsSetResponse 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 ResponseMetadata responseMetadata;
}
Loading

0 comments on commit 31a1f97

Please sign in to comment.