github.com/Files-com/files-sdk-go/v2@v2.1.2/fileuploadpart.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 FileUploadPart struct {
    10  	Send               map[string]interface{} `json:"send,omitempty" path:"send,omitempty" url:"send,omitempty"`
    11  	Action             string                 `json:"action,omitempty" path:"action,omitempty" url:"action,omitempty"`
    12  	AskAboutOverwrites *bool                  `json:"ask_about_overwrites,omitempty" path:"ask_about_overwrites,omitempty" url:"ask_about_overwrites,omitempty"`
    13  	AvailableParts     int64                  `json:"available_parts,omitempty" path:"available_parts,omitempty" url:"available_parts,omitempty"`
    14  	Expires            string                 `json:"expires,omitempty" path:"expires,omitempty" url:"expires,omitempty"`
    15  	Headers            map[string]interface{} `json:"headers,omitempty" path:"headers,omitempty" url:"headers,omitempty"`
    16  	HttpMethod         string                 `json:"http_method,omitempty" path:"http_method,omitempty" url:"http_method,omitempty"`
    17  	NextPartsize       int64                  `json:"next_partsize,omitempty" path:"next_partsize,omitempty" url:"next_partsize,omitempty"`
    18  	ParallelParts      *bool                  `json:"parallel_parts,omitempty" path:"parallel_parts,omitempty" url:"parallel_parts,omitempty"`
    19  	RetryParts         *bool                  `json:"retry_parts,omitempty" path:"retry_parts,omitempty" url:"retry_parts,omitempty"`
    20  	Parameters         map[string]interface{} `json:"parameters,omitempty" path:"parameters,omitempty" url:"parameters,omitempty"`
    21  	PartNumber         int64                  `json:"part_number,omitempty" path:"part_number,omitempty" url:"part_number,omitempty"`
    22  	Partsize           int64                  `json:"partsize,omitempty" path:"partsize,omitempty" url:"partsize,omitempty"`
    23  	Path               string                 `json:"path,omitempty" path:"path,omitempty" url:"path,omitempty"`
    24  	Ref                string                 `json:"ref,omitempty" path:"ref,omitempty" url:"ref,omitempty"`
    25  	UploadUri          string                 `json:"upload_uri,omitempty" path:"upload_uri,omitempty" url:"upload_uri,omitempty"`
    26  }
    27  
    28  func (f FileUploadPart) Identifier() interface{} {
    29  	return f.Path
    30  }
    31  
    32  type FileUploadPartCollection []FileUploadPart
    33  
    34  func (f *FileUploadPart) UnmarshalJSON(data []byte) error {
    35  	type fileUploadPart FileUploadPart
    36  	var v fileUploadPart
    37  	if err := json.Unmarshal(data, &v); err != nil {
    38  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
    39  	}
    40  
    41  	*f = FileUploadPart(v)
    42  	return nil
    43  }
    44  
    45  func (f *FileUploadPartCollection) UnmarshalJSON(data []byte) error {
    46  	type fileUploadParts FileUploadPartCollection
    47  	var v fileUploadParts
    48  	if err := json.Unmarshal(data, &v); err != nil {
    49  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
    50  	}
    51  
    52  	*f = FileUploadPartCollection(v)
    53  	return nil
    54  }
    55  
    56  func (f *FileUploadPartCollection) ToSlice() *[]interface{} {
    57  	ret := make([]interface{}, len(*f))
    58  	for i, v := range *f {
    59  		ret[i] = v
    60  	}
    61  
    62  	return &ret
    63  }