github.com/Files-com/files-sdk-go/v2@v2.1.2/group.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 Group struct { 10 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 11 Name string `json:"name,omitempty" path:"name,omitempty" url:"name,omitempty"` 12 AdminIds string `json:"admin_ids,omitempty" path:"admin_ids,omitempty" url:"admin_ids,omitempty"` 13 Notes string `json:"notes,omitempty" path:"notes,omitempty" url:"notes,omitempty"` 14 UserIds string `json:"user_ids,omitempty" path:"user_ids,omitempty" url:"user_ids,omitempty"` 15 Usernames string `json:"usernames,omitempty" path:"usernames,omitempty" url:"usernames,omitempty"` 16 } 17 18 func (g Group) Identifier() interface{} { 19 return g.Id 20 } 21 22 type GroupCollection []Group 23 24 type GroupListParams struct { 25 SortBy map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"` 26 Filter Group `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"` 27 FilterPrefix map[string]interface{} `url:"filter_prefix,omitempty" required:"false" json:"filter_prefix,omitempty" path:"filter_prefix"` 28 Ids string `url:"ids,omitempty" required:"false" json:"ids,omitempty" path:"ids"` 29 ListParams 30 } 31 32 type GroupFindParams struct { 33 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 34 } 35 36 type GroupCreateParams struct { 37 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 38 Notes string `url:"notes,omitempty" required:"false" json:"notes,omitempty" path:"notes"` 39 UserIds string `url:"user_ids,omitempty" required:"false" json:"user_ids,omitempty" path:"user_ids"` 40 AdminIds string `url:"admin_ids,omitempty" required:"false" json:"admin_ids,omitempty" path:"admin_ids"` 41 } 42 43 type GroupUpdateParams struct { 44 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 45 Name string `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"` 46 Notes string `url:"notes,omitempty" required:"false" json:"notes,omitempty" path:"notes"` 47 UserIds string `url:"user_ids,omitempty" required:"false" json:"user_ids,omitempty" path:"user_ids"` 48 AdminIds string `url:"admin_ids,omitempty" required:"false" json:"admin_ids,omitempty" path:"admin_ids"` 49 } 50 51 type GroupDeleteParams struct { 52 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 53 } 54 55 func (g *Group) UnmarshalJSON(data []byte) error { 56 type group Group 57 var v group 58 if err := json.Unmarshal(data, &v); err != nil { 59 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 60 } 61 62 *g = Group(v) 63 return nil 64 } 65 66 func (g *GroupCollection) UnmarshalJSON(data []byte) error { 67 type groups GroupCollection 68 var v groups 69 if err := json.Unmarshal(data, &v); err != nil { 70 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 71 } 72 73 *g = GroupCollection(v) 74 return nil 75 } 76 77 func (g *GroupCollection) ToSlice() *[]interface{} { 78 ret := make([]interface{}, len(*g)) 79 for i, v := range *g { 80 ret[i] = v 81 } 82 83 return &ret 84 }