github.com/Files-com/files-sdk-go/v2@v2.1.2/bundlenotification.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 BundleNotification struct {
    10  	BundleId             int64 `json:"bundle_id,omitempty" path:"bundle_id,omitempty" url:"bundle_id,omitempty"`
    11  	Id                   int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"`
    12  	NotifyOnRegistration *bool `json:"notify_on_registration,omitempty" path:"notify_on_registration,omitempty" url:"notify_on_registration,omitempty"`
    13  	NotifyOnUpload       *bool `json:"notify_on_upload,omitempty" path:"notify_on_upload,omitempty" url:"notify_on_upload,omitempty"`
    14  	UserId               int64 `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"`
    15  }
    16  
    17  func (b BundleNotification) Identifier() interface{} {
    18  	return b.Id
    19  }
    20  
    21  type BundleNotificationCollection []BundleNotification
    22  
    23  type BundleNotificationListParams struct {
    24  	UserId int64                  `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"`
    25  	SortBy map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"`
    26  	Filter BundleNotification     `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"`
    27  	ListParams
    28  }
    29  
    30  type BundleNotificationFindParams struct {
    31  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
    32  }
    33  
    34  type BundleNotificationCreateParams struct {
    35  	UserId               int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"`
    36  	NotifyOnRegistration *bool `url:"notify_on_registration,omitempty" required:"false" json:"notify_on_registration,omitempty" path:"notify_on_registration"`
    37  	NotifyOnUpload       *bool `url:"notify_on_upload,omitempty" required:"false" json:"notify_on_upload,omitempty" path:"notify_on_upload"`
    38  	BundleId             int64 `url:"bundle_id,omitempty" required:"true" json:"bundle_id,omitempty" path:"bundle_id"`
    39  }
    40  
    41  type BundleNotificationUpdateParams struct {
    42  	Id                   int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
    43  	NotifyOnRegistration *bool `url:"notify_on_registration,omitempty" required:"false" json:"notify_on_registration,omitempty" path:"notify_on_registration"`
    44  	NotifyOnUpload       *bool `url:"notify_on_upload,omitempty" required:"false" json:"notify_on_upload,omitempty" path:"notify_on_upload"`
    45  }
    46  
    47  type BundleNotificationDeleteParams struct {
    48  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
    49  }
    50  
    51  func (b *BundleNotification) UnmarshalJSON(data []byte) error {
    52  	type bundleNotification BundleNotification
    53  	var v bundleNotification
    54  	if err := json.Unmarshal(data, &v); err != nil {
    55  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
    56  	}
    57  
    58  	*b = BundleNotification(v)
    59  	return nil
    60  }
    61  
    62  func (b *BundleNotificationCollection) UnmarshalJSON(data []byte) error {
    63  	type bundleNotifications BundleNotificationCollection
    64  	var v bundleNotifications
    65  	if err := json.Unmarshal(data, &v); err != nil {
    66  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
    67  	}
    68  
    69  	*b = BundleNotificationCollection(v)
    70  	return nil
    71  }
    72  
    73  func (b *BundleNotificationCollection) ToSlice() *[]interface{} {
    74  	ret := make([]interface{}, len(*b))
    75  	for i, v := range *b {
    76  		ret[i] = v
    77  	}
    78  
    79  	return &ret
    80  }