mirror of
https://github.com/rjNemo/go-wiki
synced 2026-06-06 02:36:40 +00:00
90 lines
3.5 KiB
Go
90 lines
3.5 KiB
Go
package stripe
|
|
|
|
import "encoding/json"
|
|
|
|
// CapabilityDisabledReason describes why a capability is disabled.
|
|
type CapabilityDisabledReason string
|
|
|
|
// List of values that CapabilityDisabledReason can take.
|
|
const (
|
|
CapabilityDisabledReasonPendingOnboarding CapabilityDisabledReason = "pending.onboarding"
|
|
CapabilityDisabledReasonPendingReview CapabilityDisabledReason = "pending.review"
|
|
CapabilityDisabledReasonRejectedFraud CapabilityDisabledReason = "rejected_fraud"
|
|
CapabilityDisabledReasonRejectedListed CapabilityDisabledReason = "rejected.listed"
|
|
CapabilityDisabledReasonRejectedOther CapabilityDisabledReason = "rejected.other"
|
|
CapabilityDisabledReasonRequirementsFieldsNeeded CapabilityDisabledReason = "requirement.fields_needed"
|
|
)
|
|
|
|
// CapabilityStatus describes the different statuses for a capability's status.
|
|
type CapabilityStatus string
|
|
|
|
// List of values that CapabilityStatus can take.
|
|
const (
|
|
CapabilityStatusActive CapabilityStatus = "active"
|
|
CapabilityStatusInactive CapabilityStatus = "inactive"
|
|
CapabilityStatusPending CapabilityStatus = "pending"
|
|
CapabilityStatusUnrequested CapabilityStatus = "unrequested"
|
|
)
|
|
|
|
// CapabilityParams is the set of parameters that can be used when updating a capability.
|
|
// For more details see https://stripe.com/docs/api/capabilities/update
|
|
type CapabilityParams struct {
|
|
Params `form:"*"`
|
|
Account *string `form:"-"` // Included in URL
|
|
Requested *bool `form:"requested"`
|
|
}
|
|
|
|
// CapabilityListParams is the set of parameters that can be used when listing capabilities.
|
|
// For more detail see https://stripe.com/docs/api/capabilities/list
|
|
type CapabilityListParams struct {
|
|
ListParams `form:"*"`
|
|
Account *string `form:"-"` // Included in URL
|
|
}
|
|
|
|
// CapabilityRequirements represents information that needs to be collected for a capability.
|
|
type CapabilityRequirements struct {
|
|
CurrentDeadline int64 `json:"current_deadline"`
|
|
CurrentlyDue []string `json:"currently_due"`
|
|
DisabledReason CapabilityDisabledReason `json:"disabled_reason"`
|
|
Errors []*AccountRequirementsError `json:"errors"`
|
|
EventuallyDue []string `json:"eventually_due"`
|
|
PastDue []string `json:"past_due"`
|
|
PendingVerification []string `json:"pending_verification"`
|
|
}
|
|
|
|
// Capability is the resource representing a Stripe capability.
|
|
// For more details see https://stripe.com/docs/api/capabilities
|
|
type Capability struct {
|
|
Account *Account `json:"account"`
|
|
ID string `json:"id"`
|
|
Object string `json:"object"`
|
|
Requested bool `json:"requested"`
|
|
RequestedAt int64 `json:"requested_at"`
|
|
Requirements *CapabilityRequirements `json:"requirements"`
|
|
Status CapabilityStatus `json:"status"`
|
|
}
|
|
|
|
// CapabilityList is a list of capabilities as retrieved from a list endpoint.
|
|
type CapabilityList struct {
|
|
ListMeta
|
|
Data []*Capability `json:"data"`
|
|
}
|
|
|
|
// UnmarshalJSON handles deserialization of a Capability.
|
|
// This custom unmarshaling is needed because the resulting
|
|
// property may be an id or the full struct if it was expanded.
|
|
func (c *Capability) UnmarshalJSON(data []byte) error {
|
|
if id, ok := ParseID(data); ok {
|
|
c.ID = id
|
|
return nil
|
|
}
|
|
|
|
type capability Capability
|
|
var v capability
|
|
if err := json.Unmarshal(data, &v); err != nil {
|
|
return err
|
|
}
|
|
|
|
*c = Capability(v)
|
|
return nil
|
|
}
|