Packages
stripity_stripe
1.6.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/coupons.ex
defmodule Stripe.Coupons do
@moduledoc """
Handles coupons to the Stripe API.
(API ref: https://stripe.com/docs/api#coupons)
Operations:
- create
- retrieve
- update (TODO)
- delete (TODO)
- list (TODO)
"""
@endpoint "coupons"
@doc """
Retrieves the coupon with the given ID.
Returns a coupon if a valid coupon ID was provided.
Throws an error otherwise.
## Examples
```
params = "free-1-month"
{:ok, result} = Stripe.Coupons.retrieve params
```
"""
def retrieve(params) do
path = @endpoint <> "/" <> params
Stripe.make_request(:get, path, %{}, %{})
|> Stripe.Util.handle_stripe_response
end
@doc """
Creates a coupon with given options. :duration is required and must be
either "forever", "once", or "repeating".
Returns a coupon if successful.
Throws an error otherwise.
## Examples
```
opts = [
duration: "forever",
id: "DISCOUNT20",
percent_off: 25
]
{:ok, result} = Stripe.Coupons.create opts
```
"""
def create(opts \\ []) do
create opts, Stripe.config_or_env_key
end
@doc """
Creates a coupon with given options using given API key. :duration is required and must be
either "forever", "once", or "repeating".
Returns a coupon if successful.
Throws an error otherwise.
## Examples
```
opts = [
duration: "forever",
id: "DISCOUNT20",
percent_off: 25
]
{:ok, result} = Stripe.Coupons.create opts, key
```
"""
def create(opts, key) do
Stripe.make_request_with_key(:post, @endpoint, key, opts)
|> Stripe.Util.handle_stripe_response
end
end