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  }