Packages

Auto-generated Elixir client for the X (Twitter) API v2

Current section

Files

Jump to
xdk_elixir lib xdk media.ex
Raw

lib/xdk/media.ex

# AUTO-GENERATED FILE - DO NOT EDIT
# This file was automatically generated by the XDK build tool.
# Any manual changes will be overwritten on the next generation.
defmodule Xdk.Media do
@moduledoc "Auto-generated client for media operations"
@doc """
Get Media by media keys
GET /2/media
Retrieves details of Media files by their media keys.
"""
@spec get_by_keys(Xdk.t(), opts :: keyword()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def get_by_keys(client, opts \\ []) do
query =
[
{"media_keys", Keyword.get(opts, :media_keys)},
{"media.fields", Keyword.get(opts, :media_fields)}
]
|> Xdk.Query.build()
Xdk.request(client, :get, "/2/media", query: query)
end
@doc """
Get Media upload status
GET /2/media/upload
Retrieves the status of a Media upload by its ID.
"""
@spec get_upload_status(Xdk.t(), opts :: keyword()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def get_upload_status(client, opts \\ []) do
query =
[
{"media_id", Keyword.get(opts, :media_id)},
{"command", Keyword.get(opts, :command)}
]
|> Xdk.Query.build()
Xdk.request(client, :get, "/2/media/upload", query: query)
end
@doc """
Upload media
POST /2/media/upload
Uploads a media file for use in posts or other content.
"""
@spec upload(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def upload(client, body) do
Xdk.request(client, :post, "/2/media/upload", json: body)
end
@doc """
Create Media subtitles
POST /2/media/subtitles
Creates subtitles for a specific Media file.
"""
@spec create_subtitles(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def create_subtitles(client, body) do
Xdk.request(client, :post, "/2/media/subtitles", json: body)
end
@doc """
Delete Media subtitles
DELETE /2/media/subtitles
Deletes subtitles for a specific Media file.
"""
@spec delete_subtitles(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def delete_subtitles(client, body) do
Xdk.request(client, :delete, "/2/media/subtitles", json: body)
end
@doc """
Append Media upload
POST /2/media/upload/{id}/append
Appends data to a Media upload request.
"""
@spec append_upload(Xdk.t(), id :: String.t(), body :: map()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def append_upload(client, id, body) do
Xdk.request(client, :post, "/2/media/upload/{id}/append",
params: %{
"id" => id
},
json: body
)
end
@doc """
Initialize media upload
POST /2/media/upload/initialize
Initializes a media upload.
"""
@spec initialize_upload(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def initialize_upload(client, body) do
Xdk.request(client, :post, "/2/media/upload/initialize", json: body)
end
@doc """
Get Media by media key
GET /2/media/{media_key}
Retrieves details of a specific Media file by its media key.
"""
@spec get_by_key(Xdk.t(), media_key :: String.t(), opts :: keyword()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def get_by_key(client, media_key, opts \\ []) do
query =
[
{"media.fields", Keyword.get(opts, :media_fields)}
]
|> Xdk.Query.build()
Xdk.request(client, :get, "/2/media/{media_key}",
params: %{
"media_key" => media_key
},
query: query
)
end
@doc """
Get Media analytics
GET /2/media/analytics
Retrieves analytics data for media.
"""
@spec get_analytics(Xdk.t(), opts :: keyword()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def get_analytics(client, opts \\ []) do
query =
[
{"media_keys", Keyword.get(opts, :media_keys)},
{"end_time", Keyword.get(opts, :end_time)},
{"start_time", Keyword.get(opts, :start_time)},
{"granularity", Keyword.get(opts, :granularity)},
{"media_analytics.fields", Keyword.get(opts, :media_analytics_fields)}
]
|> Xdk.Query.build()
Xdk.request(client, :get, "/2/media/analytics", query: query)
end
@doc """
Finalize Media upload
POST /2/media/upload/{id}/finalize
Finalizes a Media upload request.
"""
@spec finalize_upload(Xdk.t(), id :: String.t()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def finalize_upload(client, id) do
Xdk.request(client, :post, "/2/media/upload/{id}/finalize",
params: %{
"id" => id
}
)
end
@doc """
Create Media metadata
POST /2/media/metadata
Creates metadata for a Media file.
"""
@spec create_metadata(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def create_metadata(client, body) do
Xdk.request(client, :post, "/2/media/metadata", json: body)
end
end