github.com/Files-com/files-sdk-go/v2@v2.1.2/clickwrap.go (about) 1 package files_sdk 2 3 import ( 4 "encoding/json" 5 6 lib "github.com/Files-com/files-sdk-go/v2/lib" 7 ) 8 9 type Clickwrap struct { 10 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 11 Name string `json:"name,omitempty" path:"name,omitempty" url:"name,omitempty"` 12 Body string `json:"body,omitempty" path:"body,omitempty" url:"body,omitempty"` 13 UseWithUsers string `json:"use_with_users,omitempty" path:"use_with_users,omitempty" url:"use_with_users,omitempty"` 14 UseWithBundles string `json:"use_with_bundles,omitempty" path:"use_with_bundles,omitempty" url:"use_with_bundles,omitempty"` 15 UseWithInboxes string `json:"use_with_inboxes,omitempty" path:"use_with_inboxes,omitempty" url:"use_with_inboxes,omitempty"` 16 } 17 18 func (c Clickwrap) Identifier() interface{} { 19 return c.Id 20 } 21 22 type ClickwrapCollection []Clickwrap 23 24 type ClickwrapUseWithBundlesEnum string 25 26 func (u ClickwrapUseWithBundlesEnum) String() string { 27 return string(u) 28 } 29 30 func (u ClickwrapUseWithBundlesEnum) Enum() map[string]ClickwrapUseWithBundlesEnum { 31 return map[string]ClickwrapUseWithBundlesEnum{ 32 "none": ClickwrapUseWithBundlesEnum("none"), 33 "available": ClickwrapUseWithBundlesEnum("available"), 34 "require": ClickwrapUseWithBundlesEnum("require"), 35 } 36 } 37 38 type ClickwrapUseWithInboxesEnum string 39 40 func (u ClickwrapUseWithInboxesEnum) String() string { 41 return string(u) 42 } 43 44 func (u ClickwrapUseWithInboxesEnum) Enum() map[string]ClickwrapUseWithInboxesEnum { 45 return map[string]ClickwrapUseWithInboxesEnum{ 46 "none": ClickwrapUseWithInboxesEnum("none"), 47 "available": ClickwrapUseWithInboxesEnum("available"), 48 "require": ClickwrapUseWithInboxesEnum("require"), 49 } 50 } 51 52 type ClickwrapUseWithUsersEnum string 53 54 func (u ClickwrapUseWithUsersEnum) String() string { 55 return string(u) 56 } 57 58 func (u ClickwrapUseWithUsersEnum) Enum() map[string]ClickwrapUseWithUsersEnum { 59 return map[string]ClickwrapUseWithUsersEnum{ 60 "none": ClickwrapUseWithUsersEnum("none"), 61 "require": ClickwrapUseWithUsersEnum("require"), 62 } 63 } 64 65 type ClickwrapListParams struct { 66 ListParams 67 } 68 69 type ClickwrapFindParams struct { 70 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 71 } 72 73 type ClickwrapCreateParams struct { 74 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 75 Body string `url:"body,omitempty" required:"false" json:"body,omitempty" path:"body"` 76 UseWithBundles ClickwrapUseWithBundlesEnum `url:"use_with_bundles,omitempty" required:"false" json:"use_with_bundles,omitempty" path:"use_with_bundles"` 77 UseWithInboxes ClickwrapUseWithInboxesEnum `url:"use_with_inboxes,omitempty" required:"false" json:"use_with_inboxes,omitempty" path:"use_with_inboxes"` 78 UseWithUsers ClickwrapUseWithUsersEnum `url:"use_with_users,omitempty" required:"false" json:"use_with_users,omitempty" path:"use_with_users"` 79 } 80 81 type ClickwrapUpdateParams struct { 82 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 83 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 84 Body string `url:"body,omitempty" required:"false" json:"body,omitempty" path:"body"` 85 UseWithBundles ClickwrapUseWithBundlesEnum `url:"use_with_bundles,omitempty" required:"false" json:"use_with_bundles,omitempty" path:"use_with_bundles"` 86 UseWithInboxes ClickwrapUseWithInboxesEnum `url:"use_with_inboxes,omitempty" required:"false" json:"use_with_inboxes,omitempty" path:"use_with_inboxes"` 87 UseWithUsers ClickwrapUseWithUsersEnum `url:"use_with_users,omitempty" required:"false" json:"use_with_users,omitempty" path:"use_with_users"` 88 } 89 90 type ClickwrapDeleteParams struct { 91 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 92 } 93 94 func (c *Clickwrap) UnmarshalJSON(data []byte) error { 95 type clickwrap Clickwrap 96 var v clickwrap 97 if err := json.Unmarshal(data, &v); err != nil { 98 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 99 } 100 101 *c = Clickwrap(v) 102 return nil 103 } 104 105 func (c *ClickwrapCollection) UnmarshalJSON(data []byte) error { 106 type clickwraps ClickwrapCollection 107 var v clickwraps 108 if err := json.Unmarshal(data, &v); err != nil { 109 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 110 } 111 112 *c = ClickwrapCollection(v) 113 return nil 114 } 115 116 func (c *ClickwrapCollection) ToSlice() *[]interface{} { 117 ret := make([]interface{}, len(*c)) 118 for i, v := range *c { 119 ret[i] = v 120 } 121 122 return &ret 123 }