github.com/Files-com/files-sdk-go/v3@v3.1.81/permission.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 Permission 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 UserId int64 `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"` 13 Username string `json:"username,omitempty" path:"username,omitempty" url:"username,omitempty"` 14 GroupId int64 `json:"group_id,omitempty" path:"group_id,omitempty" url:"group_id,omitempty"` 15 GroupName string `json:"group_name,omitempty" path:"group_name,omitempty" url:"group_name,omitempty"` 16 Permission string `json:"permission,omitempty" path:"permission,omitempty" url:"permission,omitempty"` 17 Recursive *bool `json:"recursive,omitempty" path:"recursive,omitempty" url:"recursive,omitempty"` 18 } 19 20 func (p Permission) Identifier() interface{} { 21 return p.Id 22 } 23 24 type PermissionCollection []Permission 25 26 type PermissionListParams struct { 27 SortBy map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"` 28 Filter Permission `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"` 29 FilterPrefix map[string]interface{} `url:"filter_prefix,omitempty" required:"false" json:"filter_prefix,omitempty" path:"filter_prefix"` 30 Path string `url:"path,omitempty" required:"false" json:"path,omitempty" path:"path"` 31 IncludeGroups *bool `url:"include_groups,omitempty" required:"false" json:"include_groups,omitempty" path:"include_groups"` 32 GroupId string `url:"group_id,omitempty" required:"false" json:"group_id,omitempty" path:"group_id"` 33 UserId string `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 34 ListParams 35 } 36 37 type PermissionCreateParams struct { 38 GroupId int64 `url:"group_id,omitempty" required:"false" json:"group_id,omitempty" path:"group_id"` 39 Path string `url:"path,omitempty" required:"false" json:"path,omitempty" path:"path"` 40 Permission string `url:"permission,omitempty" required:"false" json:"permission,omitempty" path:"permission"` 41 Recursive *bool `url:"recursive,omitempty" required:"false" json:"recursive,omitempty" path:"recursive"` 42 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 43 Username string `url:"username,omitempty" required:"false" json:"username,omitempty" path:"username"` 44 } 45 46 type PermissionDeleteParams struct { 47 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 48 } 49 50 func (p *Permission) UnmarshalJSON(data []byte) error { 51 type permission Permission 52 var v permission 53 if err := json.Unmarshal(data, &v); err != nil { 54 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 55 } 56 57 *p = Permission(v) 58 return nil 59 } 60 61 func (p *PermissionCollection) UnmarshalJSON(data []byte) error { 62 type permissions PermissionCollection 63 var v permissions 64 if err := json.Unmarshal(data, &v); err != nil { 65 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 66 } 67 68 *p = PermissionCollection(v) 69 return nil 70 } 71 72 func (p *PermissionCollection) ToSlice() *[]interface{} { 73 ret := make([]interface{}, len(*p)) 74 for i, v := range *p { 75 ret[i] = v 76 } 77 78 return &ret 79 }