Skip to content

Commit 8922dc8

Browse files
authored
feat(web): add workflows.featured.{add|list|remove|set} methods (#1712)
1 parent 8ffd0c4 commit 8922dc8

File tree

4 files changed

+245
-25
lines changed

4 files changed

+245
-25
lines changed

slack_sdk/web/async_client.py

Lines changed: 74 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,24 @@
1414
import os
1515
import warnings
1616
from io import IOBase
17-
from typing import Union, Sequence, Optional, Dict, Any, List
17+
from typing import Any, Dict, List, Optional, Sequence, Union
1818

1919
import slack_sdk.errors as e
2020
from slack_sdk.models.views import View
21+
22+
from ..models.attachments import Attachment
23+
from ..models.blocks import Block
24+
from ..models.metadata import Metadata
2125
from .async_base_client import AsyncBaseClient, AsyncSlackResponse
2226
from .internal_utils import (
2327
_parse_web_class_objects,
24-
_update_call_participants,
25-
_warn_if_text_or_attachment_fallback_is_missing,
28+
_print_files_upload_v2_suggestion,
2629
_remove_none_values,
2730
_to_v2_file_upload_item,
31+
_update_call_participants,
2832
_validate_for_legacy_client,
29-
_print_files_upload_v2_suggestion,
33+
_warn_if_text_or_attachment_fallback_is_missing,
3034
)
31-
from ..models.attachments import Attachment
32-
from ..models.blocks import Block
33-
from ..models.metadata import Metadata
3435

3536

3637
class AsyncWebClient(AsyncBaseClient):
@@ -5415,6 +5416,72 @@ async def views_publish(
54155416
# NOTE: Intentionally using json for the "view" parameter
54165417
return await self.api_call("views.publish", json=kwargs)
54175418

5419+
async def workflows_featured_add(
5420+
self,
5421+
*,
5422+
channel_id: str,
5423+
trigger_ids: Union[str, Sequence[str]],
5424+
**kwargs,
5425+
) -> AsyncSlackResponse:
5426+
"""Add featured workflows to a channel.
5427+
https://api.slack.com/methods/workflows.featured.add
5428+
"""
5429+
kwargs.update({"channel_id": channel_id})
5430+
if isinstance(trigger_ids, (list, tuple)):
5431+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5432+
else:
5433+
kwargs.update({"trigger_ids": trigger_ids})
5434+
return await self.api_call("workflows.featured.add", params=kwargs)
5435+
5436+
async def workflows_featured_list(
5437+
self,
5438+
*,
5439+
channel_ids: Union[str, Sequence[str]],
5440+
**kwargs,
5441+
) -> AsyncSlackResponse:
5442+
"""List the featured workflows for specified channels.
5443+
https://api.slack.com/methods/workflows.featured.list
5444+
"""
5445+
if isinstance(channel_ids, (list, tuple)):
5446+
kwargs.update({"channel_ids": ",".join(channel_ids)})
5447+
else:
5448+
kwargs.update({"channel_ids": channel_ids})
5449+
return await self.api_call("workflows.featured.list", params=kwargs)
5450+
5451+
async def workflows_featured_remove(
5452+
self,
5453+
*,
5454+
channel_id: str,
5455+
trigger_ids: Union[str, Sequence[str]],
5456+
**kwargs,
5457+
) -> AsyncSlackResponse:
5458+
"""Remove featured workflows from a channel.
5459+
https://api.slack.com/methods/workflows.featured.remove
5460+
"""
5461+
kwargs.update({"channel_id": channel_id})
5462+
if isinstance(trigger_ids, (list, tuple)):
5463+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5464+
else:
5465+
kwargs.update({"trigger_ids": trigger_ids})
5466+
return await self.api_call("workflows.featured.remove", params=kwargs)
5467+
5468+
async def workflows_featured_set(
5469+
self,
5470+
*,
5471+
channel_id: str,
5472+
trigger_ids: Union[str, Sequence[str]],
5473+
**kwargs,
5474+
) -> AsyncSlackResponse:
5475+
"""Set featured workflows for a channel.
5476+
https://api.slack.com/methods/workflows.featured.set
5477+
"""
5478+
kwargs.update({"channel_id": channel_id})
5479+
if isinstance(trigger_ids, (list, tuple)):
5480+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5481+
else:
5482+
kwargs.update({"trigger_ids": trigger_ids})
5483+
return await self.api_call("workflows.featured.set", params=kwargs)
5484+
54185485
async def workflows_stepCompleted(
54195486
self,
54205487
*,

slack_sdk/web/client.py

Lines changed: 74 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,24 @@
44
import os
55
import warnings
66
from io import IOBase
7-
from typing import Union, Sequence, Optional, Dict, Any, List
7+
from typing import Any, Dict, List, Optional, Sequence, Union
88

99
import slack_sdk.errors as e
1010
from slack_sdk.models.views import View
11+
12+
from ..models.attachments import Attachment
13+
from ..models.blocks import Block
14+
from ..models.metadata import Metadata
1115
from .base_client import BaseClient, SlackResponse
1216
from .internal_utils import (
1317
_parse_web_class_objects,
14-
_update_call_participants,
15-
_warn_if_text_or_attachment_fallback_is_missing,
18+
_print_files_upload_v2_suggestion,
1619
_remove_none_values,
1720
_to_v2_file_upload_item,
21+
_update_call_participants,
1822
_validate_for_legacy_client,
19-
_print_files_upload_v2_suggestion,
23+
_warn_if_text_or_attachment_fallback_is_missing,
2024
)
21-
from ..models.attachments import Attachment
22-
from ..models.blocks import Block
23-
from ..models.metadata import Metadata
2425

2526

2627
class WebClient(BaseClient):
@@ -5405,6 +5406,72 @@ def views_publish(
54055406
# NOTE: Intentionally using json for the "view" parameter
54065407
return self.api_call("views.publish", json=kwargs)
54075408

5409+
def workflows_featured_add(
5410+
self,
5411+
*,
5412+
channel_id: str,
5413+
trigger_ids: Union[str, Sequence[str]],
5414+
**kwargs,
5415+
) -> SlackResponse:
5416+
"""Add featured workflows to a channel.
5417+
https://api.slack.com/methods/workflows.featured.add
5418+
"""
5419+
kwargs.update({"channel_id": channel_id})
5420+
if isinstance(trigger_ids, (list, tuple)):
5421+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5422+
else:
5423+
kwargs.update({"trigger_ids": trigger_ids})
5424+
return self.api_call("workflows.featured.add", params=kwargs)
5425+
5426+
def workflows_featured_list(
5427+
self,
5428+
*,
5429+
channel_ids: Union[str, Sequence[str]],
5430+
**kwargs,
5431+
) -> SlackResponse:
5432+
"""List the featured workflows for specified channels.
5433+
https://api.slack.com/methods/workflows.featured.list
5434+
"""
5435+
if isinstance(channel_ids, (list, tuple)):
5436+
kwargs.update({"channel_ids": ",".join(channel_ids)})
5437+
else:
5438+
kwargs.update({"channel_ids": channel_ids})
5439+
return self.api_call("workflows.featured.list", params=kwargs)
5440+
5441+
def workflows_featured_remove(
5442+
self,
5443+
*,
5444+
channel_id: str,
5445+
trigger_ids: Union[str, Sequence[str]],
5446+
**kwargs,
5447+
) -> SlackResponse:
5448+
"""Remove featured workflows from a channel.
5449+
https://api.slack.com/methods/workflows.featured.remove
5450+
"""
5451+
kwargs.update({"channel_id": channel_id})
5452+
if isinstance(trigger_ids, (list, tuple)):
5453+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5454+
else:
5455+
kwargs.update({"trigger_ids": trigger_ids})
5456+
return self.api_call("workflows.featured.remove", params=kwargs)
5457+
5458+
def workflows_featured_set(
5459+
self,
5460+
*,
5461+
channel_id: str,
5462+
trigger_ids: Union[str, Sequence[str]],
5463+
**kwargs,
5464+
) -> SlackResponse:
5465+
"""Set featured workflows for a channel.
5466+
https://api.slack.com/methods/workflows.featured.set
5467+
"""
5468+
kwargs.update({"channel_id": channel_id})
5469+
if isinstance(trigger_ids, (list, tuple)):
5470+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5471+
else:
5472+
kwargs.update({"trigger_ids": trigger_ids})
5473+
return self.api_call("workflows.featured.set", params=kwargs)
5474+
54085475
def workflows_stepCompleted(
54095476
self,
54105477
*,

slack_sdk/web/legacy_client.py

Lines changed: 74 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,24 @@
1616
import os
1717
import warnings
1818
from io import IOBase
19-
from typing import Union, Sequence, Optional, Dict, Any, List
19+
from typing import Any, Dict, List, Optional, Sequence, Union
2020

2121
import slack_sdk.errors as e
2222
from slack_sdk.models.views import View
23+
24+
from ..models.attachments import Attachment
25+
from ..models.blocks import Block
26+
from ..models.metadata import Metadata
2327
from .legacy_base_client import LegacyBaseClient, SlackResponse
2428
from .internal_utils import (
2529
_parse_web_class_objects,
26-
_update_call_participants,
27-
_warn_if_text_or_attachment_fallback_is_missing,
30+
_print_files_upload_v2_suggestion,
2831
_remove_none_values,
2932
_to_v2_file_upload_item,
33+
_update_call_participants,
3034
_validate_for_legacy_client,
31-
_print_files_upload_v2_suggestion,
35+
_warn_if_text_or_attachment_fallback_is_missing,
3236
)
33-
from ..models.attachments import Attachment
34-
from ..models.blocks import Block
35-
from ..models.metadata import Metadata
3637

3738

3839
class LegacyWebClient(LegacyBaseClient):
@@ -5417,6 +5418,72 @@ def views_publish(
54175418
# NOTE: Intentionally using json for the "view" parameter
54185419
return self.api_call("views.publish", json=kwargs)
54195420

5421+
def workflows_featured_add(
5422+
self,
5423+
*,
5424+
channel_id: str,
5425+
trigger_ids: Union[str, Sequence[str]],
5426+
**kwargs,
5427+
) -> Union[Future, SlackResponse]:
5428+
"""Add featured workflows to a channel.
5429+
https://api.slack.com/methods/workflows.featured.add
5430+
"""
5431+
kwargs.update({"channel_id": channel_id})
5432+
if isinstance(trigger_ids, (list, tuple)):
5433+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5434+
else:
5435+
kwargs.update({"trigger_ids": trigger_ids})
5436+
return self.api_call("workflows.featured.add", params=kwargs)
5437+
5438+
def workflows_featured_list(
5439+
self,
5440+
*,
5441+
channel_ids: Union[str, Sequence[str]],
5442+
**kwargs,
5443+
) -> Union[Future, SlackResponse]:
5444+
"""List the featured workflows for specified channels.
5445+
https://api.slack.com/methods/workflows.featured.list
5446+
"""
5447+
if isinstance(channel_ids, (list, tuple)):
5448+
kwargs.update({"channel_ids": ",".join(channel_ids)})
5449+
else:
5450+
kwargs.update({"channel_ids": channel_ids})
5451+
return self.api_call("workflows.featured.list", params=kwargs)
5452+
5453+
def workflows_featured_remove(
5454+
self,
5455+
*,
5456+
channel_id: str,
5457+
trigger_ids: Union[str, Sequence[str]],
5458+
**kwargs,
5459+
) -> Union[Future, SlackResponse]:
5460+
"""Remove featured workflows from a channel.
5461+
https://api.slack.com/methods/workflows.featured.remove
5462+
"""
5463+
kwargs.update({"channel_id": channel_id})
5464+
if isinstance(trigger_ids, (list, tuple)):
5465+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5466+
else:
5467+
kwargs.update({"trigger_ids": trigger_ids})
5468+
return self.api_call("workflows.featured.remove", params=kwargs)
5469+
5470+
def workflows_featured_set(
5471+
self,
5472+
*,
5473+
channel_id: str,
5474+
trigger_ids: Union[str, Sequence[str]],
5475+
**kwargs,
5476+
) -> Union[Future, SlackResponse]:
5477+
"""Set featured workflows for a channel.
5478+
https://api.slack.com/methods/workflows.featured.set
5479+
"""
5480+
kwargs.update({"channel_id": channel_id})
5481+
if isinstance(trigger_ids, (list, tuple)):
5482+
kwargs.update({"trigger_ids": ",".join(trigger_ids)})
5483+
else:
5484+
kwargs.update({"trigger_ids": trigger_ids})
5485+
return self.api_call("workflows.featured.set", params=kwargs)
5486+
54205487
def workflows_stepCompleted(
54215488
self,
54225489
*,

0 commit comments

Comments
 (0)