Class: Sendly::AccountResource
- Inherits:
-
Object
- Object
- Sendly::AccountResource
- Defined in:
- lib/sendly/account_resource.rb
Overview
Account resource for accessing account information, credits, and API keys
Instance Method Summary collapse
-
#api_key(key_id) ⇒ Sendly::ApiKey
Get a specific API key by ID.
-
#api_key_usage(key_id) ⇒ Hash
Get usage statistics for an API key.
-
#api_keys ⇒ Array<Sendly::ApiKey>
List API keys for the account.
-
#create_api_key(name, expires_at: nil) ⇒ Hash
Create a new API key.
-
#credits ⇒ Sendly::Credits
Get credit balance.
-
#get ⇒ Sendly::Account
Get account information.
-
#initialize(client) ⇒ AccountResource
constructor
A new instance of AccountResource.
-
#revoke_api_key(key_id) ⇒ void
Revoke an API key.
-
#transactions(limit: nil, offset: nil) ⇒ Array<Sendly::CreditTransaction>
Get credit transaction history.
- #transfer_credits(target_organization_id:, amount:) ⇒ Object
Constructor Details
#initialize(client) ⇒ AccountResource
Returns a new instance of AccountResource.
7 8 9 |
# File 'lib/sendly/account_resource.rb', line 7 def initialize(client) @client = client end |
Instance Method Details
#api_key(key_id) ⇒ Sendly::ApiKey
Get a specific API key by ID
57 58 59 60 |
# File 'lib/sendly/account_resource.rb', line 57 def api_key(key_id) response = @client.get("/keys/#{key_id}") ApiKey.new(response) end |
#api_key_usage(key_id) ⇒ Hash
Get usage statistics for an API key
66 67 68 |
# File 'lib/sendly/account_resource.rb', line 66 def api_key_usage(key_id) @client.get("/keys/#{key_id}/usage") end |
#api_keys ⇒ Array<Sendly::ApiKey>
List API keys for the account
48 49 50 51 |
# File 'lib/sendly/account_resource.rb', line 48 def api_keys response = @client.get("/keys") response.map { |data| ApiKey.new(data) } end |
#create_api_key(name, expires_at: nil) ⇒ Hash
Create a new API key
79 80 81 82 83 84 85 86 |
# File 'lib/sendly/account_resource.rb', line 79 def create_api_key(name, expires_at: nil) raise ArgumentError, "API key name is required" if name.nil? || name.empty? body = { name: name } body[:expiresAt] = expires_at if expires_at @client.post("/account/keys", body) end |
#credits ⇒ Sendly::Credits
Get credit balance
26 27 28 29 |
# File 'lib/sendly/account_resource.rb', line 26 def credits response = @client.get("/credits") Credits.new(response) end |
#get ⇒ Sendly::Account
Get account information
14 15 16 17 |
# File 'lib/sendly/account_resource.rb', line 14 def get response = @client.get("/account") Account.new(response) end |
#revoke_api_key(key_id) ⇒ void
This method returns an undefined value.
Revoke an API key
92 93 94 95 96 |
# File 'lib/sendly/account_resource.rb', line 92 def revoke_api_key(key_id) raise ArgumentError, "API key ID is required" if key_id.nil? || key_id.empty? @client.delete("/account/keys/#{key_id}") end |
#transactions(limit: nil, offset: nil) ⇒ Array<Sendly::CreditTransaction>
Get credit transaction history
36 37 38 39 40 41 42 43 |
# File 'lib/sendly/account_resource.rb', line 36 def transactions(limit: nil, offset: nil) params = {} params[:limit] = limit if limit params[:offset] = offset if offset response = @client.get("/credits/transactions", params) response.map { |data| CreditTransaction.new(data) } end |
#transfer_credits(target_organization_id:, amount:) ⇒ Object
98 99 100 101 102 103 104 105 106 |
# File 'lib/sendly/account_resource.rb', line 98 def transfer_credits(target_organization_id:, amount:) raise ArgumentError, "Target organization ID is required" if target_organization_id.nil? || target_organization_id.empty? raise ArgumentError, "Amount must be a positive integer" if !amount.is_a?(Integer) || amount <= 0 @client.post("/credits/transfer", { targetOrganizationId: target_organization_id, amount: amount }) end |