github.com/Files-com/files-sdk-go/v3@v3.1.81/groupuser.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 GroupUser struct { 10 GroupName string `json:"group_name,omitempty" path:"group_name,omitempty" url:"group_name,omitempty"` 11 GroupId int64 `json:"group_id,omitempty" path:"group_id,omitempty" url:"group_id,omitempty"` 12 UserId int64 `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"` 13 Admin *bool `json:"admin,omitempty" path:"admin,omitempty" url:"admin,omitempty"` 14 Usernames []string `json:"usernames,omitempty" path:"usernames,omitempty" url:"usernames,omitempty"` 15 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 16 } 17 18 func (g GroupUser) Identifier() interface{} { 19 return g.Id 20 } 21 22 type GroupUserCollection []GroupUser 23 24 type GroupUserListParams struct { 25 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 26 GroupId int64 `url:"group_id,omitempty" required:"false" json:"group_id,omitempty" path:"group_id"` 27 ListParams 28 } 29 30 type GroupUserCreateParams struct { 31 GroupId int64 `url:"group_id,omitempty" required:"true" json:"group_id,omitempty" path:"group_id"` 32 UserId int64 `url:"user_id,omitempty" required:"true" json:"user_id,omitempty" path:"user_id"` 33 Admin *bool `url:"admin,omitempty" required:"false" json:"admin,omitempty" path:"admin"` 34 } 35 36 type GroupUserUpdateParams struct { 37 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 38 GroupId int64 `url:"group_id,omitempty" required:"true" json:"group_id,omitempty" path:"group_id"` 39 UserId int64 `url:"user_id,omitempty" required:"true" json:"user_id,omitempty" path:"user_id"` 40 Admin *bool `url:"admin,omitempty" required:"false" json:"admin,omitempty" path:"admin"` 41 } 42 43 type GroupUserDeleteParams struct { 44 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 45 GroupId int64 `url:"group_id,omitempty" required:"true" json:"group_id,omitempty" path:"group_id"` 46 UserId int64 `url:"user_id,omitempty" required:"true" json:"user_id,omitempty" path:"user_id"` 47 } 48 49 func (g *GroupUser) UnmarshalJSON(data []byte) error { 50 type groupUser GroupUser 51 var v groupUser 52 if err := json.Unmarshal(data, &v); err != nil { 53 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 54 } 55 56 *g = GroupUser(v) 57 return nil 58 } 59 60 func (g *GroupUserCollection) UnmarshalJSON(data []byte) error { 61 type groupUsers GroupUserCollection 62 var v groupUsers 63 if err := json.Unmarshal(data, &v); err != nil { 64 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 65 } 66 67 *g = GroupUserCollection(v) 68 return nil 69 } 70 71 func (g *GroupUserCollection) ToSlice() *[]interface{} { 72 ret := make([]interface{}, len(*g)) 73 for i, v := range *g { 74 ret[i] = v 75 } 76 77 return &ret 78 }