defmodule GnApiSdkElixir.Plans do
@moduledoc """
Módulo de integração de planos
"""
alias GnApiSdkElixir.Request
@doc """
Busca informações relacionadas à uma assinatura.
"""
def list do
Request.get("/v1/plans")
end
@doc """
Cria o plano de assinatura, sendo definido pelo integrador o nome do plano, intervalo (em meses) em que a assinatura será gerada e a quantidade de repetições que a cobrança será gerada.
"""
@type plan :: %{name: String.t, interval: integer, repeats: integer}
def create(plan) do
Request.post("/v1/plan", plan)
end
@doc """
Permite alterar (editar) o nome de um plano de assinatura pré existente. Para tal, deve ser fornecido o identificador do plan_id desejado.
"""
def update(id, %{name: name}) do
Request.put("/v1/plan/#{id}", %{name: name})
end
@doc """
Permite cancelar um plano de assinatura. Para tal, você deve informar o plan_id.
"""
def delete(id) do
Request.delete("/v1/plan/#{id}")
end
end