Documentation
¶
Index ¶
- Constants
- func Bool(b bool) param.Opt[bool]
- func BoolPtr(v bool) *bool
- func DefaultClientOptions() []option.RequestOption
- func File(rdr io.Reader, filename string, contentType string) file
- func Float(f float64) param.Opt[float64]
- func FloatPtr(v float64) *float64
- func Int(i int64) param.Opt[int64]
- func IntPtr(v int64) *int64
- func Opt[T comparable](v T) param.Opt[T]
- func Ptr[T any](v T) *T
- func String(s string) param.Opt[string]
- func StringPtr(v string) *string
- func Time(t time.Time) param.Opt[time.Time]
- func TimePtr(v time.Time) *time.Time
- type Account
- type AccountAccountType
- type AccountDepositParams
- type AccountDepositResponse
- type AccountListParams
- type AccountNewParams
- type AccountNewParamsAccountType
- type AccountService
- func (r *AccountService) Close(ctx context.Context, id string, opts ...option.RequestOption) (res *Account, err error)
- func (r *AccountService) Deposit(ctx context.Context, id string, body AccountDepositParams, ...) (res *AccountDepositResponse, err error)
- func (r *AccountService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *Account, err error)
- func (r *AccountService) List(ctx context.Context, query AccountListParams, opts ...option.RequestOption) (res *[]Account, err error)
- func (r *AccountService) New(ctx context.Context, body AccountNewParams, opts ...option.RequestOption) (res *Account, err error)
- func (r *AccountService) Transfer(ctx context.Context, id string, body AccountTransferParams, ...) (res *AccountTransferResponse, err error)
- func (r *AccountService) UpdateStatus(ctx context.Context, id string, body AccountUpdateStatusParams, ...) (res *Account, err error)
- func (r *AccountService) Withdraw(ctx context.Context, id string, body AccountWithdrawParams, ...) (res *AccountWithdrawResponse, err error)
- type AccountStatus
- type AccountTransferParams
- type AccountTransferResponse
- type AccountUpdateStatusParams
- type AccountUpdateStatusParamsStatus
- type AccountWithdrawParams
- type AccountWithdrawResponse
- type AuditEventListParams
- type AuditEventListParamsEnvironment
- type AuditEventListParamsOutcome
- type AuditEventListResponse
- type AuditEventListResponseData
- type AuditEventListResponseDataActor
- type AuditEventListResponseDataRequest
- type AuditEventListResponseDataTarget
- type AuditEventListResponsePagination
- type AuditEventService
- type Client
- func (r *Client) Delete(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Execute(ctx context.Context, method string, path string, params any, res any, ...) error
- func (r *Client) Get(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Patch(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Post(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Put(ctx context.Context, path string, params any, res any, ...) error
- type Error
- type Transaction
- type TransactionListByAccountParams
- type TransactionListParams
- type TransactionListResponse
- type TransactionListResponseData
- type TransactionListResponsePagination
- type TransactionService
- func (r *TransactionService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *shared.Transaction, err error)
- func (r *TransactionService) List(ctx context.Context, query TransactionListParams, opts ...option.RequestOption) (res *TransactionListResponse, err error)
- func (r *TransactionService) ListByAccount(ctx context.Context, accountID string, query TransactionListByAccountParams, ...) (res *[]shared.Transaction, err error)
- type TransactionStatus
- type TransactionTransactionType
- type UserNewParams
- type UserNewParamsXEnvironment
- type UserNewResponse
- type UserService
Constants ¶
const TransactionStatusCancelled = shared.TransactionStatusCancelled
Equals "cancelled"
const TransactionStatusCompleted = shared.TransactionStatusCompleted
Equals "completed"
const TransactionStatusFailed = shared.TransactionStatusFailed
Equals "failed"
const TransactionStatusPending = shared.TransactionStatusPending
Equals "pending"
const TransactionTransactionTypeDeposit = shared.TransactionTransactionTypeDeposit
Equals "deposit"
const TransactionTransactionTypeRecurringPayment = shared.TransactionTransactionTypeRecurringPayment
Equals "recurring_payment"
const TransactionTransactionTypeSavingsWithdraw = shared.TransactionTransactionTypeSavingsWithdraw
Equals "savings_withdraw"
const TransactionTransactionTypeTransfer = shared.TransactionTransactionTypeTransfer
Equals "transfer"
const TransactionTransactionTypeWithdrawal = shared.TransactionTransactionTypeWithdrawal
Equals "withdrawal"
Variables ¶
This section is empty.
Functions ¶
func DefaultClientOptions ¶
func DefaultClientOptions() []option.RequestOption
DefaultClientOptions read from the environment (RAILS_API_KEY, RAILS_BASE_URL). This should be used to initialize new clients.
func Opt ¶
func Opt[T comparable](v T) param.Opt[T]
Types ¶
type Account ¶
type Account struct {
ID string `json:"id" api:"required" format:"uuid"`
AccountNumber string `json:"account_number" api:"required"`
// Any of "checking", "saving".
AccountType AccountAccountType `json:"account_type" api:"required"`
Balance string `json:"balance" api:"required"`
Currency string `json:"currency" api:"required"`
Environment string `json:"environment" api:"required"`
// Any of "active", "suspended", "closed".
Status AccountStatus `json:"status" api:"required"`
UserID string `json:"user_id" api:"required" format:"uuid"`
AdminUserID string `json:"admin_user_id" api:"nullable" format:"uuid"`
CreatedAt time.Time `json:"created_at" api:"nullable" format:"date-time"`
OrganizationID string `json:"organization_id" api:"nullable" format:"uuid"`
UpdatedAt time.Time `json:"updated_at" api:"nullable" format:"date-time"`
UserRole string `json:"user_role" api:"nullable"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
AccountNumber respjson.Field
AccountType respjson.Field
Balance respjson.Field
Currency respjson.Field
Environment respjson.Field
Status respjson.Field
UserID respjson.Field
AdminUserID respjson.Field
CreatedAt respjson.Field
OrganizationID respjson.Field
UpdatedAt respjson.Field
UserRole respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (*Account) UnmarshalJSON ¶
type AccountAccountType ¶
type AccountAccountType string
const ( AccountAccountTypeChecking AccountAccountType = "checking" AccountAccountTypeSaving AccountAccountType = "saving" )
type AccountDepositParams ¶
type AccountDepositParams struct {
Amount string `json:"amount" api:"required"`
Description param.Opt[string] `json:"description,omitzero"`
// contains filtered or unexported fields
}
func (AccountDepositParams) MarshalJSON ¶
func (r AccountDepositParams) MarshalJSON() (data []byte, err error)
func (*AccountDepositParams) UnmarshalJSON ¶
func (r *AccountDepositParams) UnmarshalJSON(data []byte) error
type AccountDepositResponse ¶
type AccountDepositResponse struct {
Account Account `json:"account" api:"required"`
Transaction shared.Transaction `json:"transaction" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Account respjson.Field
Transaction respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AccountDepositResponse) RawJSON ¶
func (r AccountDepositResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*AccountDepositResponse) UnmarshalJSON ¶
func (r *AccountDepositResponse) UnmarshalJSON(data []byte) error
type AccountListParams ¶
type AccountListParams struct {
UserID string `query:"user_id" api:"required" format:"uuid" json:"-"`
// contains filtered or unexported fields
}
func (AccountListParams) URLQuery ¶
func (r AccountListParams) URLQuery() (v url.Values, err error)
URLQuery serializes AccountListParams's query parameters as `url.Values`.
type AccountNewParams ¶
type AccountNewParams struct {
// Any of "checking", "saving".
AccountType AccountNewParamsAccountType `json:"account_type,omitzero" api:"required"`
// Three-letter uppercase ISO currency code, for example USD or ZAR.
Currency string `json:"currency" api:"required"`
UserID string `json:"user_id" api:"required" format:"uuid"`
Environment param.Opt[string] `json:"environment,omitzero"`
OrganizationID param.Opt[string] `json:"organization_id,omitzero" format:"uuid"`
// contains filtered or unexported fields
}
func (AccountNewParams) MarshalJSON ¶
func (r AccountNewParams) MarshalJSON() (data []byte, err error)
func (*AccountNewParams) UnmarshalJSON ¶
func (r *AccountNewParams) UnmarshalJSON(data []byte) error
type AccountNewParamsAccountType ¶
type AccountNewParamsAccountType string
const ( AccountNewParamsAccountTypeChecking AccountNewParamsAccountType = "checking" AccountNewParamsAccountTypeSaving AccountNewParamsAccountType = "saving" )
type AccountService ¶
type AccountService struct {
Options []option.RequestOption
}
Accounts
AccountService contains methods and other services that help with interacting with the rails API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewAccountService method instead.
func NewAccountService ¶
func NewAccountService(opts ...option.RequestOption) (r AccountService)
NewAccountService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*AccountService) Close ¶
func (r *AccountService) Close(ctx context.Context, id string, opts ...option.RequestOption) (res *Account, err error)
Close account
func (*AccountService) Deposit ¶
func (r *AccountService) Deposit(ctx context.Context, id string, body AccountDepositParams, opts ...option.RequestOption) (res *AccountDepositResponse, err error)
Deposit into account
func (*AccountService) Get ¶
func (r *AccountService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *Account, err error)
Retrieve account
func (*AccountService) List ¶
func (r *AccountService) List(ctx context.Context, query AccountListParams, opts ...option.RequestOption) (res *[]Account, err error)
List accounts
func (*AccountService) New ¶
func (r *AccountService) New(ctx context.Context, body AccountNewParams, opts ...option.RequestOption) (res *Account, err error)
Create account
func (*AccountService) Transfer ¶
func (r *AccountService) Transfer(ctx context.Context, id string, body AccountTransferParams, opts ...option.RequestOption) (res *AccountTransferResponse, err error)
Transfer between accounts
func (*AccountService) UpdateStatus ¶
func (r *AccountService) UpdateStatus(ctx context.Context, id string, body AccountUpdateStatusParams, opts ...option.RequestOption) (res *Account, err error)
Update account status
func (*AccountService) Withdraw ¶
func (r *AccountService) Withdraw(ctx context.Context, id string, body AccountWithdrawParams, opts ...option.RequestOption) (res *AccountWithdrawResponse, err error)
Withdraw from account
type AccountStatus ¶
type AccountStatus string
const ( AccountStatusActive AccountStatus = "active" AccountStatusSuspended AccountStatus = "suspended" AccountStatusClosed AccountStatus = "closed" )
type AccountTransferParams ¶
type AccountTransferParams struct {
Amount string `json:"amount" api:"required"`
ToAccountID string `json:"to_account_id" api:"required" format:"uuid"`
Description param.Opt[string] `json:"description,omitzero"`
// contains filtered or unexported fields
}
func (AccountTransferParams) MarshalJSON ¶
func (r AccountTransferParams) MarshalJSON() (data []byte, err error)
func (*AccountTransferParams) UnmarshalJSON ¶
func (r *AccountTransferParams) UnmarshalJSON(data []byte) error
type AccountTransferResponse ¶
type AccountTransferResponse struct {
FromAccount Account `json:"from_account" api:"required"`
ToAccount Account `json:"to_account" api:"required"`
Transaction shared.Transaction `json:"transaction" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
FromAccount respjson.Field
ToAccount respjson.Field
Transaction respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AccountTransferResponse) RawJSON ¶
func (r AccountTransferResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*AccountTransferResponse) UnmarshalJSON ¶
func (r *AccountTransferResponse) UnmarshalJSON(data []byte) error
type AccountUpdateStatusParams ¶
type AccountUpdateStatusParams struct {
// Any of "active", "suspended", "closed".
Status AccountUpdateStatusParamsStatus `json:"status,omitzero"`
// contains filtered or unexported fields
}
func (AccountUpdateStatusParams) MarshalJSON ¶
func (r AccountUpdateStatusParams) MarshalJSON() (data []byte, err error)
func (*AccountUpdateStatusParams) UnmarshalJSON ¶
func (r *AccountUpdateStatusParams) UnmarshalJSON(data []byte) error
type AccountUpdateStatusParamsStatus ¶
type AccountUpdateStatusParamsStatus string
const ( AccountUpdateStatusParamsStatusActive AccountUpdateStatusParamsStatus = "active" AccountUpdateStatusParamsStatusSuspended AccountUpdateStatusParamsStatus = "suspended" AccountUpdateStatusParamsStatusClosed AccountUpdateStatusParamsStatus = "closed" )
type AccountWithdrawParams ¶
type AccountWithdrawParams struct {
Amount string `json:"amount" api:"required"`
Description param.Opt[string] `json:"description,omitzero"`
// contains filtered or unexported fields
}
func (AccountWithdrawParams) MarshalJSON ¶
func (r AccountWithdrawParams) MarshalJSON() (data []byte, err error)
func (*AccountWithdrawParams) UnmarshalJSON ¶
func (r *AccountWithdrawParams) UnmarshalJSON(data []byte) error
type AccountWithdrawResponse ¶
type AccountWithdrawResponse struct {
Account Account `json:"account" api:"required"`
Transaction shared.Transaction `json:"transaction" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Account respjson.Field
Transaction respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AccountWithdrawResponse) RawJSON ¶
func (r AccountWithdrawResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*AccountWithdrawResponse) UnmarshalJSON ¶
func (r *AccountWithdrawResponse) UnmarshalJSON(data []byte) error
type AuditEventListParams ¶ added in v0.3.0
type AuditEventListParams struct {
Action param.Opt[string] `query:"action,omitzero" json:"-"`
From param.Opt[time.Time] `query:"from,omitzero" format:"date-time" json:"-"`
Page param.Opt[int64] `query:"page,omitzero" json:"-"`
PerPage param.Opt[int64] `query:"per_page,omitzero" json:"-"`
TargetID param.Opt[string] `query:"target_id,omitzero" json:"-"`
TargetType param.Opt[string] `query:"target_type,omitzero" json:"-"`
To param.Opt[time.Time] `query:"to,omitzero" format:"date-time" json:"-"`
// Environment to list audit events from. Defaults to sandbox when omitted.
//
// Any of "sandbox", "production".
Environment AuditEventListParamsEnvironment `query:"environment,omitzero" json:"-"`
// Any of "success", "client_error", "server_error".
Outcome AuditEventListParamsOutcome `query:"outcome,omitzero" json:"-"`
// contains filtered or unexported fields
}
func (AuditEventListParams) URLQuery ¶ added in v0.3.0
func (r AuditEventListParams) URLQuery() (v url.Values, err error)
URLQuery serializes AuditEventListParams's query parameters as `url.Values`.
type AuditEventListParamsEnvironment ¶ added in v0.3.0
type AuditEventListParamsEnvironment string
Environment to list audit events from. Defaults to sandbox when omitted.
const ( AuditEventListParamsEnvironmentSandbox AuditEventListParamsEnvironment = "sandbox" AuditEventListParamsEnvironmentProduction AuditEventListParamsEnvironment = "production" )
type AuditEventListParamsOutcome ¶ added in v0.3.0
type AuditEventListParamsOutcome string
const ( AuditEventListParamsOutcomeSuccess AuditEventListParamsOutcome = "success" AuditEventListParamsOutcomeClientError AuditEventListParamsOutcome = "client_error" AuditEventListParamsOutcomeServerError AuditEventListParamsOutcome = "server_error" )
type AuditEventListResponse ¶ added in v0.3.0
type AuditEventListResponse struct {
Data []AuditEventListResponseData `json:"data" api:"required"`
Pagination AuditEventListResponsePagination `json:"pagination" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Data respjson.Field
Pagination respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AuditEventListResponse) RawJSON ¶ added in v0.3.0
func (r AuditEventListResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*AuditEventListResponse) UnmarshalJSON ¶ added in v0.3.0
func (r *AuditEventListResponse) UnmarshalJSON(data []byte) error
type AuditEventListResponseData ¶ added in v0.3.0
type AuditEventListResponseData struct {
ID string `json:"id" api:"required" format:"uuid"`
// Any of "users.business.register", "users.auth.login", "users.auth.refresh",
// "users.auth.revoke", "users.password_reset.request",
// "users.password_reset.complete", "users.beta.apply", "users.api_key.create",
// "users.api_key.revoke", "accounts.account.create",
// "accounts.account.update_status", "accounts.account.close",
// "accounts.money.deposit", "accounts.money.withdraw", "accounts.money.transfer",
// "ledger.transaction.post".
Action string `json:"action" api:"required"`
Actor AuditEventListResponseDataActor `json:"actor" api:"required"`
CorrelationID string `json:"correlation_id" api:"required"`
CreatedAt time.Time `json:"created_at" api:"required" format:"date-time"`
// Any of "sandbox", "production".
Environment string `json:"environment" api:"required"`
Metadata map[string]string `json:"metadata" api:"required"`
OccurredAt time.Time `json:"occurred_at" api:"required" format:"date-time"`
OrganizationID string `json:"organization_id" api:"required" format:"uuid"`
// Any of "success", "client_error", "server_error".
Outcome string `json:"outcome" api:"required"`
Request AuditEventListResponseDataRequest `json:"request" api:"required"`
// Any of 1.
SchemaVersion int64 `json:"schema_version" api:"required"`
// Any of "users", "accounts", "ledger".
SourceService string `json:"source_service" api:"required"`
Target AuditEventListResponseDataTarget `json:"target" api:"required"`
Reason string `json:"reason" api:"nullable"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Action respjson.Field
Actor respjson.Field
CorrelationID respjson.Field
CreatedAt respjson.Field
Environment respjson.Field
Metadata respjson.Field
OccurredAt respjson.Field
OrganizationID respjson.Field
Outcome respjson.Field
Request respjson.Field
SchemaVersion respjson.Field
SourceService respjson.Field
Target respjson.Field
Reason respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AuditEventListResponseData) RawJSON ¶ added in v0.3.0
func (r AuditEventListResponseData) RawJSON() string
Returns the unmodified JSON received from the API
func (*AuditEventListResponseData) UnmarshalJSON ¶ added in v0.3.0
func (r *AuditEventListResponseData) UnmarshalJSON(data []byte) error
type AuditEventListResponseDataActor ¶ added in v0.3.0
type AuditEventListResponseDataActor struct {
ID string `json:"id" api:"required"`
// Any of "user", "api_key", "internal_service", "anonymous".
Type string `json:"type" api:"required"`
Roles []string `json:"roles"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Type respjson.Field
Roles respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AuditEventListResponseDataActor) RawJSON ¶ added in v0.3.0
func (r AuditEventListResponseDataActor) RawJSON() string
Returns the unmodified JSON received from the API
func (*AuditEventListResponseDataActor) UnmarshalJSON ¶ added in v0.3.0
func (r *AuditEventListResponseDataActor) UnmarshalJSON(data []byte) error
type AuditEventListResponseDataRequest ¶ added in v0.3.0
type AuditEventListResponseDataRequest struct {
ID string `json:"id" api:"required"`
Method string `json:"method" api:"required"`
Path string `json:"path" api:"required"`
IP string `json:"ip"`
UserAgent string `json:"user_agent"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Method respjson.Field
Path respjson.Field
IP respjson.Field
UserAgent respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AuditEventListResponseDataRequest) RawJSON ¶ added in v0.3.0
func (r AuditEventListResponseDataRequest) RawJSON() string
Returns the unmodified JSON received from the API
func (*AuditEventListResponseDataRequest) UnmarshalJSON ¶ added in v0.3.0
func (r *AuditEventListResponseDataRequest) UnmarshalJSON(data []byte) error
type AuditEventListResponseDataTarget ¶ added in v0.3.0
type AuditEventListResponseDataTarget struct {
ID string `json:"id" api:"required"`
Type string `json:"type" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Type respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AuditEventListResponseDataTarget) RawJSON ¶ added in v0.3.0
func (r AuditEventListResponseDataTarget) RawJSON() string
Returns the unmodified JSON received from the API
func (*AuditEventListResponseDataTarget) UnmarshalJSON ¶ added in v0.3.0
func (r *AuditEventListResponseDataTarget) UnmarshalJSON(data []byte) error
type AuditEventListResponsePagination ¶ added in v0.3.0
type AuditEventListResponsePagination struct {
Page int64 `json:"page" api:"required"`
PerPage int64 `json:"per_page" api:"required"`
TotalCount int64 `json:"total_count" api:"required"`
TotalPages int64 `json:"total_pages" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Page respjson.Field
PerPage respjson.Field
TotalCount respjson.Field
TotalPages respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (AuditEventListResponsePagination) RawJSON ¶ added in v0.3.0
func (r AuditEventListResponsePagination) RawJSON() string
Returns the unmodified JSON received from the API
func (*AuditEventListResponsePagination) UnmarshalJSON ¶ added in v0.3.0
func (r *AuditEventListResponsePagination) UnmarshalJSON(data []byte) error
type AuditEventService ¶ added in v0.3.0
type AuditEventService struct {
Options []option.RequestOption
}
Audit events
AuditEventService contains methods and other services that help with interacting with the rails API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewAuditEventService method instead.
func NewAuditEventService ¶ added in v0.3.0
func NewAuditEventService(opts ...option.RequestOption) (r AuditEventService)
NewAuditEventService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*AuditEventService) List ¶ added in v0.3.0
func (r *AuditEventService) List(ctx context.Context, query AuditEventListParams, opts ...option.RequestOption) (res *AuditEventListResponse, err error)
List audit events
type Client ¶
type Client struct {
Options []option.RequestOption
// Users
Users UserService
// Accounts
Accounts AccountService
// Transactions
Transactions TransactionService
// Audit events
AuditEvents AuditEventService
}
Client creates a struct with services and top level methods that help with interacting with the rails API. You should not instantiate this client directly, and instead use the NewClient method instead.
func NewClient ¶
func NewClient(opts ...option.RequestOption) (r Client)
NewClient generates a new client with the default option read from the environment (RAILS_API_KEY, RAILS_BASE_URL). The option passed in as arguments are applied after these default arguments, and all option will be passed down to the services and requests that this client makes.
func (*Client) Delete ¶
func (r *Client) Delete(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Delete makes a DELETE request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Execute ¶
func (r *Client) Execute(ctx context.Context, method string, path string, params any, res any, opts ...option.RequestOption) error
Execute makes a request with the given context, method, URL, request params, response, and request options. This is useful for hitting undocumented endpoints while retaining the base URL, auth, retries, and other options from the client.
If a byte slice or an io.Reader is supplied to params, it will be used as-is for the request body.
The params is by default serialized into the body using encoding/json. If your type implements a MarshalJSON function, it will be used instead to serialize the request. If a URLQuery method is implemented, the returned url.Values will be used as query strings to the url.
If your params struct uses param.Field, you must provide either [MarshalJSON], [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a struct uses param.Field without specifying how it is serialized.
Any "…Params" object defined in this library can be used as the request argument. Note that 'path' arguments will not be forwarded into the url.
The response body will be deserialized into the res variable, depending on its type:
- A pointer to a *http.Response is populated by the raw response.
- A pointer to a byte array will be populated with the contents of the request body.
- A pointer to any other type uses this library's default JSON decoding, which respects UnmarshalJSON if it is defined on the type.
- A nil value will not read the response body.
For even greater flexibility, see option.WithResponseInto and option.WithResponseBodyInto.
func (*Client) Get ¶
func (r *Client) Get(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Get makes a GET request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Patch ¶
func (r *Client) Patch(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Patch makes a PATCH request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
type TransactionListByAccountParams ¶
type TransactionListByAccountParams struct {
Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
// contains filtered or unexported fields
}
func (TransactionListByAccountParams) URLQuery ¶
func (r TransactionListByAccountParams) URLQuery() (v url.Values, err error)
URLQuery serializes TransactionListByAccountParams's query parameters as `url.Values`.
type TransactionListParams ¶
type TransactionListParams struct {
OrganizationID string `query:"organization_id" api:"required" format:"uuid" json:"-"`
Page param.Opt[int64] `query:"page,omitzero" json:"-"`
PerPage param.Opt[int64] `query:"per_page,omitzero" json:"-"`
// contains filtered or unexported fields
}
func (TransactionListParams) URLQuery ¶
func (r TransactionListParams) URLQuery() (v url.Values, err error)
URLQuery serializes TransactionListParams's query parameters as `url.Values`.
type TransactionListResponse ¶
type TransactionListResponse struct {
Data []TransactionListResponseData `json:"data" api:"required"`
Pagination TransactionListResponsePagination `json:"pagination" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Data respjson.Field
Pagination respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (TransactionListResponse) RawJSON ¶
func (r TransactionListResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*TransactionListResponse) UnmarshalJSON ¶
func (r *TransactionListResponse) UnmarshalJSON(data []byte) error
type TransactionListResponseData ¶
type TransactionListResponseData struct {
ID string `json:"id" api:"required" format:"uuid"`
// Amount in minor units
Amount int64 `json:"amount" api:"required"`
CreatedAt time.Time `json:"created_at" api:"required" format:"date-time"`
Currency string `json:"currency" api:"required"`
FromAccountID string `json:"from_account_id" api:"required" format:"uuid"`
OrganizationID string `json:"organization_id" api:"required" format:"uuid"`
// Any of "pending", "posted", "failed".
Status string `json:"status" api:"required"`
ToAccountID string `json:"to_account_id" api:"required" format:"uuid"`
// Any of "deposit", "withdraw", "transfer".
TransactionKind string `json:"transaction_kind" api:"required"`
UpdatedAt time.Time `json:"updated_at" api:"required" format:"date-time"`
Environment string `json:"environment" api:"nullable"`
FailureReason string `json:"failure_reason" api:"nullable"`
IdempotencyKey string `json:"idempotency_key"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Amount respjson.Field
CreatedAt respjson.Field
Currency respjson.Field
FromAccountID respjson.Field
OrganizationID respjson.Field
Status respjson.Field
ToAccountID respjson.Field
TransactionKind respjson.Field
UpdatedAt respjson.Field
Environment respjson.Field
FailureReason respjson.Field
IdempotencyKey respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
Transaction as returned by list-by-organization (organization_id, from/to_account_id, transaction_kind).
func (TransactionListResponseData) RawJSON ¶
func (r TransactionListResponseData) RawJSON() string
Returns the unmodified JSON received from the API
func (*TransactionListResponseData) UnmarshalJSON ¶
func (r *TransactionListResponseData) UnmarshalJSON(data []byte) error
type TransactionListResponsePagination ¶
type TransactionListResponsePagination struct {
Page int64 `json:"page" api:"required"`
PerPage int64 `json:"per_page" api:"required"`
TotalCount int64 `json:"total_count" api:"required"`
TotalPages int64 `json:"total_pages" api:"required"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Page respjson.Field
PerPage respjson.Field
TotalCount respjson.Field
TotalPages respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (TransactionListResponsePagination) RawJSON ¶
func (r TransactionListResponsePagination) RawJSON() string
Returns the unmodified JSON received from the API
func (*TransactionListResponsePagination) UnmarshalJSON ¶
func (r *TransactionListResponsePagination) UnmarshalJSON(data []byte) error
type TransactionService ¶
type TransactionService struct {
Options []option.RequestOption
}
Transactions
TransactionService contains methods and other services that help with interacting with the rails API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewTransactionService method instead.
func NewTransactionService ¶
func NewTransactionService(opts ...option.RequestOption) (r TransactionService)
NewTransactionService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*TransactionService) Get ¶
func (r *TransactionService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *shared.Transaction, err error)
Retrieve transaction
func (*TransactionService) List ¶
func (r *TransactionService) List(ctx context.Context, query TransactionListParams, opts ...option.RequestOption) (res *TransactionListResponse, err error)
List transactions by organization
func (*TransactionService) ListByAccount ¶
func (r *TransactionService) ListByAccount(ctx context.Context, accountID string, query TransactionListByAccountParams, opts ...option.RequestOption) (res *[]shared.Transaction, err error)
List account transactions
type TransactionStatus ¶
type TransactionStatus = shared.TransactionStatus
This is an alias to an internal type.
type TransactionTransactionType ¶
type TransactionTransactionType = shared.TransactionTransactionType
This is an alias to an internal type.
type UserNewParams ¶
type UserNewParams struct {
Email string `json:"email" api:"required" format:"email"`
FirstName string `json:"first_name" api:"required"`
LastName string `json:"last_name" api:"required"`
Password string `json:"password" api:"required" format:"password"`
// Any of "sandbox", "production".
XEnvironment UserNewParamsXEnvironment `header:"X-Environment,omitzero" api:"required" json:"-"`
// contains filtered or unexported fields
}
func (UserNewParams) MarshalJSON ¶
func (r UserNewParams) MarshalJSON() (data []byte, err error)
func (*UserNewParams) UnmarshalJSON ¶
func (r *UserNewParams) UnmarshalJSON(data []byte) error
type UserNewParamsXEnvironment ¶
type UserNewParamsXEnvironment string
const ( UserNewParamsXEnvironmentSandbox UserNewParamsXEnvironment = "sandbox" UserNewParamsXEnvironmentProduction UserNewParamsXEnvironment = "production" )
type UserNewResponse ¶
type UserNewResponse struct {
Status string `json:"status" api:"required"`
UserID string `json:"user_id" api:"required" format:"uuid"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Status respjson.Field
UserID respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (UserNewResponse) RawJSON ¶
func (r UserNewResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*UserNewResponse) UnmarshalJSON ¶
func (r *UserNewResponse) UnmarshalJSON(data []byte) error
type UserService ¶
type UserService struct {
Options []option.RequestOption
}
Users
UserService contains methods and other services that help with interacting with the rails API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewUserService method instead.
func NewUserService ¶
func NewUserService(opts ...option.RequestOption) (r UserService)
NewUserService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*UserService) New ¶
func (r *UserService) New(ctx context.Context, params UserNewParams, opts ...option.RequestOption) (res *UserNewResponse, err error)
Create user
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
encoding/json
Package json implements encoding and decoding of JSON as defined in RFC 7159.
|
Package json implements encoding and decoding of JSON as defined in RFC 7159. |
|
encoding/json/shims
This package provides shims over Go 1.2{2,3} APIs which are missing from Go 1.22, and used by the Go 1.24 encoding/json package.
|
This package provides shims over Go 1.2{2,3} APIs which are missing from Go 1.22, and used by the Go 1.24 encoding/json package. |
|
packages
|
|