Skip to content

Commit 75649f4

Browse files
feat: add support for apps.user.connection.update (#2535)
1 parent dbd38e2 commit 75649f4

File tree

7 files changed

+74
-0
lines changed

7 files changed

+74
-0
lines changed

.changeset/grumpy-jobs-poke.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@slack/web-api": minor
3+
---
4+
5+
feat: add support for apps.user.connection.update

packages/web-api/src/methods.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ import type {
106106
AppsManifestUpdateArguments,
107107
AppsManifestValidateArguments,
108108
AppsUninstallArguments,
109+
AppsUserConnectionUpdateArguments,
109110
AssistantThreadsSetStatusArguments,
110111
AssistantThreadsSetSuggestedPromptsArguments,
111112
AssistantThreadsSetTitleArguments,
@@ -379,6 +380,7 @@ import type {
379380
AppsManifestUpdateResponse,
380381
AppsManifestValidateResponse,
381382
AppsUninstallResponse,
383+
AppsUserConnectionUpdateResponse,
382384
AssistantThreadsSetStatusResponse,
383385
AssistantThreadsSetSuggestedPromptsResponse,
384386
AssistantThreadsSetTitleResponse,
@@ -1469,6 +1471,18 @@ export abstract class Methods extends EventEmitter<WebClientEvent> {
14691471
* @see {@link https://docs.slack.dev/reference/methods/apps.uninstall `apps.uninstall` API reference}.
14701472
*/
14711473
uninstall: bindApiCall<AppsUninstallArguments, AppsUninstallResponse>(this, 'apps.uninstall'),
1474+
user: {
1475+
connection: {
1476+
/**
1477+
* @description Updates the connection status between a user and an app.
1478+
* @see {@link https://docs.slack.dev/reference/methods/apps.user.connection.update `apps.user.connection.update` API reference}.
1479+
*/
1480+
update: bindApiCall<AppsUserConnectionUpdateArguments, AppsUserConnectionUpdateResponse>(
1481+
this,
1482+
'apps.user.connection.update',
1483+
),
1484+
},
1485+
},
14721486
};
14731487

14741488
public readonly auth = {

packages/web-api/src/types/request/apps.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ export interface AppsManifestValidateArguments extends Partial<AppID>, TokenOver
3232
manifest: Manifest;
3333
}
3434

35+
// https://docs.slack.dev/reference/methods/apps.user.connection.update
36+
export interface AppsUserConnectionUpdateArguments extends TokenOverridable {
37+
/** @description The identifier for the user receiving the status update. */
38+
user_id: string;
39+
/** @description The connection status value to assign to the user. `connected` or `disconnected`. */
40+
status: string;
41+
}
42+
3543
// https://docs.slack.dev/reference/methods/apps.uninstall
3644
export interface AppsUninstallArguments
3745
extends Pick<OAuthCredentials, 'client_id' | 'client_secret'>,

packages/web-api/src/types/request/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ export type {
127127
AppsManifestUpdateArguments,
128128
AppsManifestValidateArguments,
129129
AppsUninstallArguments,
130+
AppsUserConnectionUpdateArguments,
130131
} from './apps';
131132
export type {
132133
AssistantThreadsSetStatusArguments,
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/////////////////////////////////////////////////////////////////////////////////////////
2+
// //
3+
// !!! DO NOT EDIT THIS FILE !!! //
4+
// //
5+
// This file is auto-generated by scripts/generate-web-api-types.sh in the repository. //
6+
// Please refer to the script code to learn how to update the source data. //
7+
// //
8+
/////////////////////////////////////////////////////////////////////////////////////////
9+
10+
import type { WebAPICallResult } from '../../WebClient';
11+
export type AppsUserConnectionUpdateResponse = WebAPICallResult & {
12+
error?: string;
13+
needed?: string;
14+
ok?: boolean;
15+
provided?: string;
16+
warning?: string;
17+
};

packages/web-api/src/types/response/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ export { AppsPermissionsScopesListResponse } from './AppsPermissionsScopesListRe
116116
export { AppsPermissionsUsersListResponse } from './AppsPermissionsUsersListResponse';
117117
export { AppsPermissionsUsersRequestResponse } from './AppsPermissionsUsersRequestResponse';
118118
export { AppsUninstallResponse } from './AppsUninstallResponse';
119+
export { AppsUserConnectionUpdateResponse } from './AppsUserConnectionUpdateResponse';
119120
export { AssistantThreadsSetStatusResponse } from './AssistantThreadsSetStatusResponse';
120121
export { AssistantThreadsSetSuggestedPromptsResponse } from './AssistantThreadsSetSuggestedPromptsResponse';
121122
export { AssistantThreadsSetTitleResponse } from './AssistantThreadsSetTitleResponse';

packages/web-api/test/types/methods/apps.test-d.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,34 @@ expectAssignable<Parameters<typeof web.apps.manifest.validate>>([
103103
},
104104
]);
105105

106+
// apps.user.connection.update
107+
// -- sad path
108+
expectError(web.apps.user.connection.update()); // lacking argument
109+
expectError(web.apps.user.connection.update({})); // empty argument
110+
expectError(
111+
web.apps.user.connection.update({
112+
user_id: 'U1234', // missing status
113+
}),
114+
);
115+
expectError(
116+
web.apps.user.connection.update({
117+
status: 'connected', // missing user_id
118+
}),
119+
);
120+
// -- happy path
121+
expectAssignable<Parameters<typeof web.apps.user.connection.update>>([
122+
{
123+
user_id: 'U1234',
124+
status: 'connected',
125+
},
126+
]);
127+
expectAssignable<Parameters<typeof web.apps.user.connection.update>>([
128+
{
129+
user_id: 'U1234',
130+
status: 'disconnected',
131+
},
132+
]);
133+
106134
// apps.uninstall
107135
// -- sad path
108136
expectError(web.apps.uninstall()); // lacking argument

0 commit comments

Comments
 (0)