Packages

An elixir client for MangoPay API.

Current section

Files

Jump to
mangopay lib mango_pay preauthorization.ex
Raw

lib/mango_pay/preauthorization.ex

defmodule MangoPay.PreAuthorization do
@moduledoc """
Functions for MangoPay [pre authorization](https://docs.mangopay.com/endpoints/v2.01/preauthorizations#e183_the-preauthorization-object).
"""
use MangoPay.Query.Base
set_path "preauthorizations"
@doc """
Get a preauthorization.
## Examples
{:ok, preauthorization} = MangoPay.PreAuthorization.get(id)
"""
def get id do
_get id
end
@doc """
Get a preauthorization.
## Examples
preauthorization = MangoPay.PreAuthorization.get!(id)
"""
def get! id do
_get! id
end
@doc """
Create a preauthorization.
## Examples
params = %{
"Tag": "custom meta",
"AuthorId": "8494514",
"DebitedFunds": %{
"Currency": "EUR",
"Amount": 12
},
"Billing": %{
"Address": %{
"AddressLine1": "1 Mangopay Street",
"AddressLine2": "The Loop",
"City": "Paris",
"Region": "Ile de France",
"PostalCode": "75001",
"Country": "FR"
}
},
"SecureMode": "DEFAULT",
"CardId": "14213157",
"SecureModeReturnURL": "http://www.my-site.com/returnURL"
}
{:ok, preauthorization} = MangoPay.PreAuthorization.create(params)
"""
def create params do
_create params, "/card/direct"
end
@doc """
Create a preauthorization.
## Examples
params = %{
"Tag": "custom meta",
"AuthorId": "8494514",
"DebitedFunds": %{
"Currency": "EUR",
"Amount": 12
},
"Billing": %{
"Address": %{
"AddressLine1": "1 Mangopay Street",
"AddressLine2": "The Loop",
"City": "Paris",
"Region": "Ile de France",
"PostalCode": "75001",
"Country": "FR"
}
},
"SecureMode": "DEFAULT",
"CardId": "14213157",
"SecureModeReturnURL": "http://www.my-site.com/returnURL"
}
preauthorization = MangoPay.PreAuthorization.create!(params)
"""
def create! params do
_create! params, "/card/direct"
end
@doc """
Cancel a preauthorization.
## Examples
params = %{
"Tag": "custom meta",
"PaymentStatus": "CANCELED"
}
{:ok, preauthorization} = MangoPay.PreAuthorization.cancel("preauthorization_id", params)
"""
def cancel id, params do
_update params, id
end
@doc """
Cancel a preauthorization.
## Examples
params = %{
"Tag": "custom meta",
"PaymentStatus": "CANCELED"
}
preauthorization = MangoPay.PreAuthorization.cancel!("preauthorization_id", params)
"""
def cancel! id, params do
_update! params, id
end
@doc """
List all preauthorizations for a credit card.
## Examples
{:ok, preauthorizations} = MangoPay.PreAuthorization.all_by_card("card_id")
"""
def all_by_card id, query \\ %{} do
_all [MangoPay.Card.path(id), resource()], query
end
@doc """
List all preauthorizations for a credit card.
## Examples
preauthorizations = MangoPay.PreAuthorization.all_by_card!("card_id")
"""
def all_by_card! id, query \\ %{} do
_all! [MangoPay.Card.path(id), resource()], query
end
@doc """
List all preauthorizations for a user.
## Examples
user_id = Id of a user object
query = %{
"Page": 1,
"Per_Page": 25,
"Sort": "CreationDate:DESC",
"ResultCode": "000000,009199",
"Status": "CREATED",
"PaymentStatus": "WAITING"
}
{:ok, preauthorizations} = MangoPay.PreAuthorization.all_by_user(user_id, query)
"""
def all_by_user id, query \\ %{} do
_all [MangoPay.User.path(id), resource()], query
end
@doc """
List all preauthorizations for a user.
## Examples
user_id = Id of a user
query = %{
"Page": 1,
"Per_Page": 25,
"Sort": "CreationDate:DESC",
"ResultCode": "000000,009199",
"Status": "CREATED",
"PaymentStatus": "WAITING"
}
preauthorizations = MangoPay.PreAuthorization.all_by_user!(user_id, query)
"""
def all_by_user! id, query \\ %{} do
_all! [MangoPay.User.path(id), resource()], query
end
end