github.com/Files-com/files-sdk-go/v2@v2.1.2/request.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 Request struct { 10 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 11 Path string `json:"path,omitempty" path:"path,omitempty" url:"path,omitempty"` 12 Source string `json:"source,omitempty" path:"source,omitempty" url:"source,omitempty"` 13 Destination string `json:"destination,omitempty" path:"destination,omitempty" url:"destination,omitempty"` 14 AutomationId string `json:"automation_id,omitempty" path:"automation_id,omitempty" url:"automation_id,omitempty"` 15 UserDisplayName string `json:"user_display_name,omitempty" path:"user_display_name,omitempty" url:"user_display_name,omitempty"` 16 UserIds string `json:"user_ids,omitempty" path:"user_ids,omitempty" url:"user_ids,omitempty"` 17 GroupIds string `json:"group_ids,omitempty" path:"group_ids,omitempty" url:"group_ids,omitempty"` 18 } 19 20 func (r Request) Identifier() interface{} { 21 return r.Id 22 } 23 24 type RequestCollection []Request 25 26 type RequestListParams struct { 27 SortBy map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"` 28 Mine *bool `url:"mine,omitempty" required:"false" json:"mine,omitempty" path:"mine"` 29 Path string `url:"path,omitempty" required:"false" json:"path,omitempty" path:"path"` 30 ListParams 31 } 32 33 type RequestGetFolderParams struct { 34 SortBy map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"` 35 Mine *bool `url:"mine,omitempty" required:"false" json:"mine,omitempty" path:"mine"` 36 Path string `url:"-,omitempty" required:"false" json:"-,omitempty" path:"path"` 37 ListParams 38 } 39 40 type RequestCreateParams struct { 41 Path string `url:"path,omitempty" required:"true" json:"path,omitempty" path:"path"` 42 Destination string `url:"destination,omitempty" required:"true" json:"destination,omitempty" path:"destination"` 43 UserIds string `url:"user_ids,omitempty" required:"false" json:"user_ids,omitempty" path:"user_ids"` 44 GroupIds string `url:"group_ids,omitempty" required:"false" json:"group_ids,omitempty" path:"group_ids"` 45 } 46 47 type RequestDeleteParams struct { 48 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 49 } 50 51 func (r *Request) UnmarshalJSON(data []byte) error { 52 type request Request 53 var v request 54 if err := json.Unmarshal(data, &v); err != nil { 55 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 56 } 57 58 *r = Request(v) 59 return nil 60 } 61 62 func (r *RequestCollection) UnmarshalJSON(data []byte) error { 63 type requests RequestCollection 64 var v requests 65 if err := json.Unmarshal(data, &v); err != nil { 66 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 67 } 68 69 *r = RequestCollection(v) 70 return nil 71 } 72 73 func (r *RequestCollection) ToSlice() *[]interface{} { 74 ret := make([]interface{}, len(*r)) 75 for i, v := range *r { 76 ret[i] = v 77 } 78 79 return &ret 80 }