github.com/Files-com/files-sdk-go/v3@v3.1.81/preview.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 Preview struct { 10 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 11 Status string `json:"status,omitempty" path:"status,omitempty" url:"status,omitempty"` 12 DownloadUri string `json:"download_uri,omitempty" path:"download_uri,omitempty" url:"download_uri,omitempty"` 13 Type string `json:"type,omitempty" path:"type,omitempty" url:"type,omitempty"` 14 Size string `json:"size,omitempty" path:"size,omitempty" url:"size,omitempty"` 15 } 16 17 func (p Preview) Identifier() interface{} { 18 return p.Id 19 } 20 21 type PreviewCollection []Preview 22 23 func (p *Preview) UnmarshalJSON(data []byte) error { 24 type preview Preview 25 var v preview 26 if err := json.Unmarshal(data, &v); err != nil { 27 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 28 } 29 30 *p = Preview(v) 31 return nil 32 } 33 34 func (p *PreviewCollection) UnmarshalJSON(data []byte) error { 35 type previews PreviewCollection 36 var v previews 37 if err := json.Unmarshal(data, &v); err != nil { 38 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 39 } 40 41 *p = PreviewCollection(v) 42 return nil 43 } 44 45 func (p *PreviewCollection) ToSlice() *[]interface{} { 46 ret := make([]interface{}, len(*p)) 47 for i, v := range *p { 48 ret[i] = v 49 } 50 51 return &ret 52 }