Current section
Files
Jump to
Current section
Files
lib/resources/chat/update_chat_settings.ex
defmodule TwitchApi.Chat.UpdateChatSettings do
@moduledoc """
⛔ This module is autogenerated please do not modify manually.
## Example request from twitch api docs:
### descriptions:
This example disables follower_mode by setting it to false.
To change a setting’s value, the request must specify the mode field and its corresponding value field. For example, to change the value of slow_mode_wait_time, the request must also specify slow_mode even if it’s already true.
### requests:
curl -X PATCH 'https://https://api.twitch.tv/helix/chat/settings?broadcaster_id=1234&moderator_id=5678'
-H'Authorization: Bearer 8j9yq1kpl92w96trqy7sintbsihdp'
-H'Client-Id: 0vql4f5yqu4spo6zrz1pkumcqwa9c'
-H'Content-Type: application/json'
-d'{"slow_mode": true, "slow_mode_wait_time": 10}'
curl -X PATCH 'https://api.twitch.tv/helix/chat/settings?broadcaster_id=1234&moderator_id=5678'
-H'Authorization: Bearer 4a4x78f5wqvkybms7mxfist3jmzul'
-H'Client-Id: t214nt8z1rdtbj69hyarjvh5mi6fh'
-H'Content-Type: application/json'
-d'{"follower_mode": false}'
## Example response from twitch api docs:
### descriptions:
### responses:
{"data":[{"broadcaster_id":"1234","moderator_id":"5678","slow_mode":true,"slow_mode_wait_time":10,"follower_mode":false,"follower_mode_duration":null,"subscriber_mode":false,"emote_mode":false,"unique_chat_mode":false,"non_moderator_chat_delay":false,"non_moderator_chat_delay_duration":null}]}
slow_mode
slow_mode_wait_time
follower_mode
"""
alias TwitchApi.MyFinch
alias TwitchApi.ApiJson.Template.Method.Headers
@doc """
### Description:
Updates the broadcaster’s chat settings.
### Required authentication:
Requires a User access token with scope set to
moderator:manage:chat_settings
.
### Required authorization:
"""
@typedoc """
The ID of the broadcaster whose chat settings you want to update.
"""
@type broadcaster_id :: %{required(:broadcaster_id) => String.t()}
@typedoc """
The ID of a user that has permission to moderate the broadcaster’s chat room. This ID must match the user ID associated with the user OAuth token.If the broadcaster is making the update, also set this parameter to the broadcaster’s ID.
"""
@type moderator_id :: %{required(:moderator_id) => String.t()}
@typedoc """
Map containing the user needed information for the fetch of the required user OAuth access token.
You will be able to choose from one way or the other for fetching previously OAuth access tokens.
:user_id field contains the user ID from twitch, e.g. 61425548 or "61425548"
:user_name field constains the user name from twitch, e.g. "hiimkamiyuzu"
"""
@type user_info :: %{user_id: integer | binary} | %{user_name: binary}
@spec call(broadcaster_id | moderator_id, user_info) ::
{:ok, Finch.Response.t()} | {:error, Exception.t()}
def call(%{broadcaster_id: broadcaster_id}, user_info) do
MyFinch.request(
"PATCH",
"https://api.twitch.tv/helix/chat/settings?broadcaster_id=#{broadcaster_id}",
Headers.config_oauth_headers(user_info),
nil
)
end
def call(%{moderator_id: moderator_id}, user_info) do
MyFinch.request(
"PATCH",
"https://api.twitch.tv/helix/chat/settings?moderator_id=#{moderator_id}",
Headers.config_oauth_headers(user_info),
nil
)
end
end