-
Notifications
You must be signed in to change notification settings - Fork 2
/
bundle.go
130 lines (114 loc) · 5.51 KB
/
bundle.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
package files_sdk
import (
"encoding/json"
"time"
lib "github.com/Files-com/files-sdk-go/lib"
)
type Bundle struct {
Code string `json:"code,omitempty"`
Url string `json:"url,omitempty"`
Description string `json:"description,omitempty"`
PasswordProtected *bool `json:"password_protected,omitempty"`
PreviewOnly *bool `json:"preview_only,omitempty"`
RequireRegistration *bool `json:"require_registration,omitempty"`
RequireShareRecipient *bool `json:"require_share_recipient,omitempty"`
ClickwrapBody string `json:"clickwrap_body,omitempty"`
FormFieldSet string `json:"form_field_set,omitempty"`
Id int64 `json:"id,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
ExpiresAt time.Time `json:"expires_at,omitempty"`
MaxUses int64 `json:"max_uses,omitempty"`
Note string `json:"note,omitempty"`
UserId int64 `json:"user_id,omitempty"`
Username string `json:"username,omitempty"`
ClickwrapId int64 `json:"clickwrap_id,omitempty"`
InboxId int64 `json:"inbox_id,omitempty"`
HasInbox *bool `json:"has_inbox,omitempty"`
Paths []string `json:"paths,omitempty"`
Password string `json:"password,omitempty"`
FormFieldSetId int64 `json:"form_field_set_id,omitempty"`
}
type BundleCollection []Bundle
type BundleListParams struct {
UserId int64 `url:"user_id,omitempty" required:"false"`
Cursor string `url:"cursor,omitempty" required:"false"`
PerPage int64 `url:"per_page,omitempty" required:"false"`
SortBy json.RawMessage `url:"sort_by,omitempty" required:"false"`
Filter json.RawMessage `url:"filter,omitempty" required:"false"`
FilterGt json.RawMessage `url:"filter_gt,omitempty" required:"false"`
FilterGteq json.RawMessage `url:"filter_gteq,omitempty" required:"false"`
FilterLike json.RawMessage `url:"filter_like,omitempty" required:"false"`
FilterLt json.RawMessage `url:"filter_lt,omitempty" required:"false"`
FilterLteq json.RawMessage `url:"filter_lteq,omitempty" required:"false"`
lib.ListParams
}
type BundleFindParams struct {
Id int64 `url:"-,omitempty" required:"true"`
}
type BundleCreateParams struct {
UserId int64 `url:"user_id,omitempty" required:"false"`
Paths []string `url:"paths,omitempty" required:"true"`
Password string `url:"password,omitempty" required:"false"`
FormFieldSetId int64 `url:"form_field_set_id,omitempty" required:"false"`
ExpiresAt time.Time `url:"expires_at,omitempty" required:"false"`
MaxUses int64 `url:"max_uses,omitempty" required:"false"`
Description string `url:"description,omitempty" required:"false"`
Note string `url:"note,omitempty" required:"false"`
Code string `url:"code,omitempty" required:"false"`
PreviewOnly *bool `url:"preview_only,omitempty" required:"false"`
RequireRegistration *bool `url:"require_registration,omitempty" required:"false"`
ClickwrapId int64 `url:"clickwrap_id,omitempty" required:"false"`
InboxId int64 `url:"inbox_id,omitempty" required:"false"`
RequireShareRecipient *bool `url:"require_share_recipient,omitempty" required:"false"`
}
// Send email(s) with a link to bundle
type BundleShareParams struct {
Id int64 `url:"-,omitempty" required:"true"`
To []string `url:"to,omitempty" required:"false"`
Note string `url:"note,omitempty" required:"false"`
Recipients []string `url:"recipients,omitempty" required:"false"`
}
type BundleUpdateParams struct {
Id int64 `url:"-,omitempty" required:"true"`
Paths []string `url:"paths,omitempty" required:"false"`
Password string `url:"password,omitempty" required:"false"`
FormFieldSetId int64 `url:"form_field_set_id,omitempty" required:"false"`
ClickwrapId int64 `url:"clickwrap_id,omitempty" required:"false"`
Code string `url:"code,omitempty" required:"false"`
Description string `url:"description,omitempty" required:"false"`
ExpiresAt time.Time `url:"expires_at,omitempty" required:"false"`
InboxId int64 `url:"inbox_id,omitempty" required:"false"`
MaxUses int64 `url:"max_uses,omitempty" required:"false"`
Note string `url:"note,omitempty" required:"false"`
PreviewOnly *bool `url:"preview_only,omitempty" required:"false"`
RequireRegistration *bool `url:"require_registration,omitempty" required:"false"`
RequireShareRecipient *bool `url:"require_share_recipient,omitempty" required:"false"`
}
type BundleDeleteParams struct {
Id int64 `url:"-,omitempty" required:"true"`
}
func (b *Bundle) UnmarshalJSON(data []byte) error {
type bundle Bundle
var v bundle
if err := json.Unmarshal(data, &v); err != nil {
return err
}
*b = Bundle(v)
return nil
}
func (b *BundleCollection) UnmarshalJSON(data []byte) error {
type bundles []Bundle
var v bundles
if err := json.Unmarshal(data, &v); err != nil {
return err
}
*b = BundleCollection(v)
return nil
}
func (b *BundleCollection) ToSlice() *[]interface{} {
ret := make([]interface{}, len(*b))
for i, v := range *b {
ret[i] = v
}
return &ret
}