github.com/Files-com/files-sdk-go/v3@v3.1.81/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/v3/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 // Finalize Snapshot 41 type SnapshotFinalizeParams struct { 42 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 43 } 44 45 type SnapshotUpdateParams struct { 46 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 47 ExpiresAt *time.Time `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"` 48 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 49 Paths []string `url:"paths,omitempty" required:"false" json:"paths,omitempty" path:"paths"` 50 } 51 52 type SnapshotDeleteParams struct { 53 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 54 } 55 56 func (s *Snapshot) UnmarshalJSON(data []byte) error { 57 type snapshot Snapshot 58 var v snapshot 59 if err := json.Unmarshal(data, &v); err != nil { 60 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 61 } 62 63 *s = Snapshot(v) 64 return nil 65 } 66 67 func (s *SnapshotCollection) UnmarshalJSON(data []byte) error { 68 type snapshots SnapshotCollection 69 var v snapshots 70 if err := json.Unmarshal(data, &v); err != nil { 71 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 72 } 73 74 *s = SnapshotCollection(v) 75 return nil 76 } 77 78 func (s *SnapshotCollection) ToSlice() *[]interface{} { 79 ret := make([]interface{}, len(*s)) 80 for i, v := range *s { 81 ret[i] = v 82 } 83 84 return &ret 85 }