github.com/Files-com/files-sdk-go/v3@v3.1.81/clickwrap.go (about)

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