(ns ird.credits
"Credit balance, ledger history and current usage prices. Every function
returns a channel (see ird.async)."
(:require [ird.transport :as transport]))
(defn balance
"GET /credits/balance — Credit balance."
[client]
(transport/request client :get "/credits/balance"))
(defn ledger
"GET /credits/ledger — Credit ledger history.
Optional QUERY keys include :limit, :cursor, :type, :kind, :contract, :day."
([client] (ledger client nil))
([client query]
(transport/request client :get "/credits/ledger" {:query query})))
(defn ledger-all
"Every ledger entry under :entries, following cursor pagination. QUERY may
include filters; :cursor is managed automatically. Delivers a vector."
([client] (ledger-all client nil))
([client query]
(transport/paginate client :get "/credits/ledger" :entries query)))
(defn prices
"GET /credits/prices — Current usage prices."
[client]
(transport/request client :get "/credits/prices"))