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  }