Packages
stripity_stripe
2.2.2
3.3.2
3.3.1
3.2.0
3.1.1
3.1.0
3.0.0
2.17.3
2.17.2
2.17.1
2.17.0
2.16.0
2.15.1
2.15.0
2.14.1
2.14.0
2.13.0
2.12.1
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.1
2.0.0
2.0.0-alpha.11
2.0.0-alpha.10
2.0.0-alpha.9
2.0.0-alpha.8
2.0.0-alpha.7
2.0.0-alpha.6
2.0.0-alpha.5
2.0.0-alpha.4
2.0.0-alpha.3
2.0.0-alpha.2
2.0.0-alpha.1
1.6.2
1.6.1
1.6.0
1.4.0
1.3.0
1.2.0
1.1.0
0.5.0
0.4.0
0.3.0
0.2.0
A Stripe client for Elixir.
Current section
Files
Jump to
Current section
Files
lib/stripe/core_resources/file_upload.ex
defmodule Stripe.FileUpload do
@moduledoc """
Work with Stripe file_upload objects.
You can:
- Create a file
- Retrieve a file
- List all files
Stripe API reference: https://stripe.com/docs/api#file_uploads
"""
use Stripe.Entity
import Stripe.Request
@type t :: %__MODULE__{
id: Stripe.id,
object: String.t,
created: Stripe.timestamp,
filename: String.t | nil,
purpose: String.t,
size: integer,
type: String.t | nil,
url: String.t | nil
}
defstruct [
:id,
:object,
:created,
:filename,
:purpose,
:size,
:type,
:url
]
@plural_endpoint "files"
@doc """
Create a file according to Stripe's file_upload rules.
Takes the filepath and the purpose.
"""
@spec create(map, Keyword.t) :: {:ok, t} | {:error, Stripe.Error.t}
def create(%{file: _, purpose: _} = params, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint)
|> put_method(:post)
|> put_params(params)
|> make_file_upload_request()
end
@doc """
Retrieve a file_upload.
"""
@spec retrieve(Stripe.id | t, Stripe.options) :: {:ok, t} | {:error, Stripe.Error.t}
def retrieve(id, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}")
|> put_method(:get)
|> make_file_upload_request()
end
@doc """
List all file uploads, going back up to 30 days.
"""
@spec list(params, Stripe.options) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t}
when params: %{
optional(:ending_before) => t | Stripe.id(),
optional(:limit) => 1..100,
optional(:purpose) => String.t(),
optional(:starting_after) => t | Stripe.id()
} | %{}
def list(params \\ %{}, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint)
|> put_method(:get)
|> put_params(params)
|> cast_to_id([:ending_before, :starting_after, :limit, :purpose])
|> make_file_upload_request()
end
end