Current section
Files
Jump to
Current section
Files
lib/xdk/lists.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.Lists do
@moduledoc "Auto-generated client for lists operations"
@doc """
Get List members
GET /2/lists/{id}/members
Retrieves a list of Users who are members of a specific List by its ID.
"""
@spec get_members(Xdk.t(), id :: String.t(), opts :: keyword()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def get_members(client, id, opts \\ []) do
query =
[
{"max_results", Keyword.get(opts, :max_results)},
{"pagination_token", Keyword.get(opts, :pagination_token)},
{"user.fields", Keyword.get(opts, :user_fields)},
{"expansions", Keyword.get(opts, :expansions)},
{"tweet.fields", Keyword.get(opts, :tweet_fields)}
]
|> Xdk.Query.build()
Xdk.request(client, :get, "/2/lists/{id}/members",
params: %{
"id" => id
},
query: query
)
end
@doc """
Add List member
POST /2/lists/{id}/members
Adds a User to a specific List by its ID.
"""
@spec add_member(Xdk.t(), id :: String.t(), body :: map()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def add_member(client, id, body) do
Xdk.request(client, :post, "/2/lists/{id}/members",
params: %{
"id" => id
},
json: body
)
end
@doc """
Get List followers
GET /2/lists/{id}/followers
Retrieves a list of Users who follow a specific List by its ID.
"""
@spec get_followers(Xdk.t(), id :: String.t(), opts :: keyword()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def get_followers(client, id, opts \\ []) do
query =
[
{"max_results", Keyword.get(opts, :max_results)},
{"pagination_token", Keyword.get(opts, :pagination_token)},
{"user.fields", Keyword.get(opts, :user_fields)},
{"expansions", Keyword.get(opts, :expansions)},
{"tweet.fields", Keyword.get(opts, :tweet_fields)}
]
|> Xdk.Query.build()
Xdk.request(client, :get, "/2/lists/{id}/followers",
params: %{
"id" => id
},
query: query
)
end
@doc """
Remove List member
DELETE /2/lists/{id}/members/{user_id}
Removes a User from a specific List by its ID and the User’s ID.
"""
@spec remove_member_by_user_id(Xdk.t(), id :: String.t(), user_id :: String.t()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def remove_member_by_user_id(client, id, user_id) do
Xdk.request(client, :delete, "/2/lists/{id}/members/{user_id}",
params: %{
"id" => id,
"user_id" => user_id
}
)
end
@doc """
Create List
POST /2/lists
Creates a new List for the authenticated user.
"""
@spec create(Xdk.t(), body :: map()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def create(client, body) do
Xdk.request(client, :post, "/2/lists", json: body)
end
@doc """
Get List by ID
GET /2/lists/{id}
Retrieves details of a specific List by its ID.
"""
@spec get_by_id(Xdk.t(), id :: String.t(), opts :: keyword()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def get_by_id(client, id, opts \\ []) do
query =
[
{"list.fields", Keyword.get(opts, :list_fields)},
{"expansions", Keyword.get(opts, :expansions)},
{"user.fields", Keyword.get(opts, :user_fields)}
]
|> Xdk.Query.build()
Xdk.request(client, :get, "/2/lists/{id}",
params: %{
"id" => id
},
query: query
)
end
@doc """
Update List
PUT /2/lists/{id}
Updates the details of a specific List owned by the authenticated user by its ID.
"""
@spec update(Xdk.t(), id :: String.t(), body :: map()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def update(client, id, body) do
Xdk.request(client, :put, "/2/lists/{id}",
params: %{
"id" => id
},
json: body
)
end
@doc """
Delete List
DELETE /2/lists/{id}
Deletes a specific List owned by the authenticated user by its ID.
"""
@spec delete(Xdk.t(), id :: String.t()) :: {:ok, map()} | {:error, Xdk.Errors.error()}
def delete(client, id) do
Xdk.request(client, :delete, "/2/lists/{id}",
params: %{
"id" => id
}
)
end
@doc """
Get List Posts
GET /2/lists/{id}/tweets
Retrieves a list of Posts associated with a specific List by its ID.
"""
@spec get_posts(Xdk.t(), id :: String.t(), opts :: keyword()) ::
{:ok, map()} | {:error, Xdk.Errors.error()}
def get_posts(client, id, opts \\ []) do
query =
[
{"max_results", Keyword.get(opts, :max_results)},
{"pagination_token", Keyword.get(opts, :pagination_token)},
{"tweet.fields", Keyword.get(opts, :tweet_fields)},
{"expansions", Keyword.get(opts, :expansions)},
{"media.fields", Keyword.get(opts, :media_fields)},
{"poll.fields", Keyword.get(opts, :poll_fields)},
{"user.fields", Keyword.get(opts, :user_fields)},
{"place.fields", Keyword.get(opts, :place_fields)}
]
|> Xdk.Query.build()
Xdk.request(client, :get, "/2/lists/{id}/tweets",
params: %{
"id" => id
},
query: query
)
end
end