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

     1  package files_sdk
     2  
     3  import (
     4  	"encoding/json"
     5  	"time"
     6  
     7  	lib "github.com/Files-com/files-sdk-go/v3/lib"
     8  )
     9  
    10  type BundleAction struct {
    11  	Action             string             `json:"action,omitempty" path:"action,omitempty" url:"action,omitempty"`
    12  	BundleRegistration BundleRegistration `json:"bundle_registration,omitempty" path:"bundle_registration,omitempty" url:"bundle_registration,omitempty"`
    13  	When               *time.Time         `json:"when,omitempty" path:"when,omitempty" url:"when,omitempty"`
    14  	Destination        string             `json:"destination,omitempty" path:"destination,omitempty" url:"destination,omitempty"`
    15  	Path               string             `json:"path,omitempty" path:"path,omitempty" url:"path,omitempty"`
    16  	Source             string             `json:"source,omitempty" path:"source,omitempty" url:"source,omitempty"`
    17  }
    18  
    19  func (b BundleAction) Identifier() interface{} {
    20  	return b.Path
    21  }
    22  
    23  type BundleActionCollection []BundleAction
    24  
    25  type BundleActionListParams struct {
    26  	SortBy               map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"`
    27  	Filter               BundleAction           `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"`
    28  	FilterGt             map[string]interface{} `url:"filter_gt,omitempty" required:"false" json:"filter_gt,omitempty" path:"filter_gt"`
    29  	FilterGteq           map[string]interface{} `url:"filter_gteq,omitempty" required:"false" json:"filter_gteq,omitempty" path:"filter_gteq"`
    30  	FilterLt             map[string]interface{} `url:"filter_lt,omitempty" required:"false" json:"filter_lt,omitempty" path:"filter_lt"`
    31  	FilterLteq           map[string]interface{} `url:"filter_lteq,omitempty" required:"false" json:"filter_lteq,omitempty" path:"filter_lteq"`
    32  	BundleId             int64                  `url:"bundle_id,omitempty" required:"false" json:"bundle_id,omitempty" path:"bundle_id"`
    33  	BundleRegistrationId int64                  `url:"bundle_registration_id,omitempty" required:"false" json:"bundle_registration_id,omitempty" path:"bundle_registration_id"`
    34  	ListParams
    35  }
    36  
    37  func (b *BundleAction) UnmarshalJSON(data []byte) error {
    38  	type bundleAction BundleAction
    39  	var v bundleAction
    40  	if err := json.Unmarshal(data, &v); err != nil {
    41  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
    42  	}
    43  
    44  	*b = BundleAction(v)
    45  	return nil
    46  }
    47  
    48  func (b *BundleActionCollection) UnmarshalJSON(data []byte) error {
    49  	type bundleActions BundleActionCollection
    50  	var v bundleActions
    51  	if err := json.Unmarshal(data, &v); err != nil {
    52  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
    53  	}
    54  
    55  	*b = BundleActionCollection(v)
    56  	return nil
    57  }
    58  
    59  func (b *BundleActionCollection) ToSlice() *[]interface{} {
    60  	ret := make([]interface{}, len(*b))
    61  	for i, v := range *b {
    62  		ret[i] = v
    63  	}
    64  
    65  	return &ret
    66  }