github.com/Files-com/files-sdk-go/v2@v2.1.2/snapshot.go (about) 1 package files_sdk 2 3 import ( 4 "encoding/json" 5 "time" 6 7 lib "github.com/Files-com/files-sdk-go/v2/lib" 8 ) 9 10 type Snapshot struct { 11 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 12 ExpiresAt *time.Time `json:"expires_at,omitempty" path:"expires_at,omitempty" url:"expires_at,omitempty"` 13 FinalizedAt *time.Time `json:"finalized_at,omitempty" path:"finalized_at,omitempty" url:"finalized_at,omitempty"` 14 Name string `json:"name,omitempty" path:"name,omitempty" url:"name,omitempty"` 15 UserId int64 `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"` 16 BundleId int64 `json:"bundle_id,omitempty" path:"bundle_id,omitempty" url:"bundle_id,omitempty"` 17 Paths []string `json:"paths,omitempty" path:"paths,omitempty" url:"paths,omitempty"` 18 } 19 20 func (s Snapshot) Identifier() interface{} { 21 return s.Id 22 } 23 24 type SnapshotCollection []Snapshot 25 26 type SnapshotListParams struct { 27 ListParams 28 } 29 30 type SnapshotFindParams struct { 31 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 32 } 33 34 type SnapshotCreateParams struct { 35 ExpiresAt *time.Time `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"` 36 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 37 Paths []string `url:"paths,omitempty" required:"false" json:"paths,omitempty" path:"paths"` 38 } 39 40 type SnapshotUpdateParams struct { 41 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 42 ExpiresAt *time.Time `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"` 43 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 44 Paths []string `url:"paths,omitempty" required:"false" json:"paths,omitempty" path:"paths"` 45 } 46 47 type SnapshotDeleteParams struct { 48 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 49 } 50 51 func (s *Snapshot) UnmarshalJSON(data []byte) error { 52 type snapshot Snapshot 53 var v snapshot 54 if err := json.Unmarshal(data, &v); err != nil { 55 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 56 } 57 58 *s = Snapshot(v) 59 return nil 60 } 61 62 func (s *SnapshotCollection) UnmarshalJSON(data []byte) error { 63 type snapshots SnapshotCollection 64 var v snapshots 65 if err := json.Unmarshal(data, &v); err != nil { 66 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 67 } 68 69 *s = SnapshotCollection(v) 70 return nil 71 } 72 73 func (s *SnapshotCollection) ToSlice() *[]interface{} { 74 ret := make([]interface{}, len(*s)) 75 for i, v := range *s { 76 ret[i] = v 77 } 78 79 return &ret 80 }