# 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