Current section

Files

Jump to
scrapped_twitch_api lib resources polls create_poll.ex
Raw

lib/resources/polls/create_poll.ex

defmodule TwitchApi.Polls.CreatePoll do
@moduledoc """
⛔ This module is autogenerated please do not modify manually.
## Example request from twitch api docs:
### descriptions:
Returns information for a specific poll created for the TwitchDev channel.
### requests:
curl -X POST 'https://api.twitch.tv/helix/polls'
-H'Authorization: Bearer cfabdegwdoklmawdzdo98xt2fo512y'
-H'Client-Id: uo6dggojyb8d6soh92zknwmi5ej1q2'
-H'Content-Type: application/json'
-d'{
"broadcaster_id":"141981764",
"title":"Heads or Tails?",
"choices":[{
"title":"Heads"
},
{
"title":"Tails"
}],
"channel_points_voting_enabled":true,
"channel_points_per_vote":100,
"duration":1800
}'
## Example response from twitch api docs:
### descriptions:
### responses:
{"data":[{"id":"ed961efd-8a3f-4cf5-a9d0-e616c590cd2a","broadcaster_id":"141981764","broadcaster_name":"TwitchDev","broadcaster_login":"twitchdev","title":"Heads or Tails?","choices":[{"id":"4c123012-1351-4f33-84b7-43856e7a0f47","title":"Heads","votes":0,"channel_points_votes":0,"bits_votes":0},{"id":"279087e3-54a7-467e-bcd0-c1393fcea4f0","title":"Tails","votes":0,"channel_points_votes":0,"bits_votes":0}],"bits_voting_enabled":false,"bits_per_vote":0,"channel_points_voting_enabled":true,"channel_points_per_vote":100,"status":"ACTIVE","duration":1800,"started_at":"2021-03-19T06:08:33.871278372Z"}]}
"""
alias TwitchApi.MyFinch
alias TwitchApi.ApiJson.Template.Method.Headers
@doc """
### Description:
Create a poll for a specific Twitch channel.
### Required authentication:
### Required authorization:
User OAuth tokenRequired scope: channel:manage:polls
"""
@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}
# The broadcaster running polls. Provided broadcaster_id must match the user_id in the user OAuth token.Maximum => 1
@spec call(
%{
required(:broadcaster_id) => String.t(),
# Array of the poll choices.Minimum => 2 choices. Maximum => 5 choices.
required(:choices) => list(map),
# Total duration for the poll (in seconds).Minimum => 15. Maximum => 1800.
required(:duration) => integer,
# Question displayed for the poll.Maximum => 60 characters.
required(:title) => String.t()
}
| nil,
user_info
) :: {:ok, Finch.Response.t()} | {:error, Exception.t()}
def call(body_params, user_info) do
MyFinch.request(
"POST",
"https://api.twitch.tv/helix/polls",
Headers.config_oauth_headers(user_info),
body_params
)
end
end