-
Notifications
You must be signed in to change notification settings - Fork 9
/
custom_field_definition.go
152 lines (125 loc) · 5.13 KB
/
custom_field_definition.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
// This file is automatically created by Recurly's OpenAPI generation process
// and thus any edits you make by hand will be lost. If you wish to make a
// change to this file, please create a Github issue explaining the changes you
// need and we will usher them to the appropriate places.
package recurly
import (
"context"
"net/http"
"time"
)
type CustomFieldDefinition struct {
recurlyResponse *ResponseMetadata
// Custom field definition ID
Id string `json:"id,omitempty"`
// Object type
Object string `json:"object,omitempty"`
// Related Recurly object type
RelatedType string `json:"related_type,omitempty"`
// Used by the API to identify the field or reading and writing. The name can only be used once per Recurly object type.
Name string `json:"name,omitempty"`
// The access control applied inside Recurly's admin UI:
// - `api_only` - No one will be able to view or edit this field's data via the admin UI.
// - `read_only` - Users with the Customers role will be able to view this field's data via the admin UI, but
// editing will only be available via the API.
// - `write` - Users with the Customers role will be able to view and edit this field's data via the admin UI.
// - `set_only` - Users with the Customers role will be able to set this field's data via the admin console.
UserAccess string `json:"user_access,omitempty"`
// Used to label the field when viewing and editing the field in Recurly's admin UI.
DisplayName string `json:"display_name,omitempty"`
// Displayed as a tooltip when editing the field in the Recurly admin UI.
Tooltip string `json:"tooltip,omitempty"`
// Created at
CreatedAt time.Time `json:"created_at,omitempty"`
// Last updated at
UpdatedAt time.Time `json:"updated_at,omitempty"`
// Definitions are initially soft deleted, and once all the values are removed from the accouts or subscriptions, will be hard deleted an no longer visible.
DeletedAt time.Time `json:"deleted_at,omitempty"`
}
// GetResponse returns the ResponseMetadata that generated this resource
func (resource *CustomFieldDefinition) GetResponse() *ResponseMetadata {
return resource.recurlyResponse
}
// setResponse sets the ResponseMetadata that generated this resource
func (resource *CustomFieldDefinition) setResponse(res *ResponseMetadata) {
resource.recurlyResponse = res
}
// internal struct for deserializing accounts
type customFieldDefinitionList struct {
ListMetadata
Data []CustomFieldDefinition `json:"data"`
recurlyResponse *ResponseMetadata
}
// GetResponse returns the ResponseMetadata that generated this resource
func (resource *customFieldDefinitionList) GetResponse() *ResponseMetadata {
return resource.recurlyResponse
}
// setResponse sets the ResponseMetadata that generated this resource
func (resource *customFieldDefinitionList) setResponse(res *ResponseMetadata) {
resource.recurlyResponse = res
}
// CustomFieldDefinitionList allows you to paginate CustomFieldDefinition objects
type CustomFieldDefinitionList struct {
client HTTPCaller
requestOptions *RequestOptions
nextPagePath string
hasMore bool
data []CustomFieldDefinition
}
func NewCustomFieldDefinitionList(client HTTPCaller, nextPagePath string, requestOptions *RequestOptions) *CustomFieldDefinitionList {
return &CustomFieldDefinitionList{
client: client,
requestOptions: requestOptions,
nextPagePath: nextPagePath,
hasMore: true,
}
}
type CustomFieldDefinitionLister interface {
Fetch() error
FetchWithContext(ctx context.Context) error
Count() (*int64, error)
CountWithContext(ctx context.Context) (*int64, error)
Data() []CustomFieldDefinition
HasMore() bool
Next() string
}
func (list *CustomFieldDefinitionList) HasMore() bool {
return list.hasMore
}
func (list *CustomFieldDefinitionList) Next() string {
return list.nextPagePath
}
func (list *CustomFieldDefinitionList) Data() []CustomFieldDefinition {
return list.data
}
// Fetch fetches the next page of data into the `Data` property
func (list *CustomFieldDefinitionList) FetchWithContext(ctx context.Context) error {
resources := &customFieldDefinitionList{}
err := list.client.Call(ctx, http.MethodGet, list.nextPagePath, nil, nil, list.requestOptions, resources)
if err != nil {
return err
}
// copy over properties from the response
list.nextPagePath = resources.Next
list.hasMore = resources.HasMore
list.data = resources.Data
return nil
}
// Fetch fetches the next page of data into the `Data` property
func (list *CustomFieldDefinitionList) Fetch() error {
return list.FetchWithContext(context.Background())
}
// Count returns the count of items on the server that match this pager
func (list *CustomFieldDefinitionList) CountWithContext(ctx context.Context) (*int64, error) {
resources := &customFieldDefinitionList{}
err := list.client.Call(ctx, http.MethodHead, list.nextPagePath, nil, nil, list.requestOptions, resources)
if err != nil {
return nil, err
}
resp := resources.GetResponse()
return resp.TotalRecords, nil
}
// Count returns the count of items on the server that match this pager
func (list *CustomFieldDefinitionList) Count() (*int64, error) {
return list.CountWithContext(context.Background())
}