github.com/Files-com/files-sdk-go/v3@v3.1.81/apikey.go (about)

     1  package files_sdk
     2  
     3  import (
     4  	"encoding/json"
     5  	"time"
     6  
     7  	lib "github.com/Files-com/files-sdk-go/v3/lib"
     8  )
     9  
    10  type ApiKey struct {
    11  	Id               int64      `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"`
    12  	DescriptiveLabel string     `json:"descriptive_label,omitempty" path:"descriptive_label,omitempty" url:"descriptive_label,omitempty"`
    13  	Description      string     `json:"description,omitempty" path:"description,omitempty" url:"description,omitempty"`
    14  	CreatedAt        *time.Time `json:"created_at,omitempty" path:"created_at,omitempty" url:"created_at,omitempty"`
    15  	ExpiresAt        *time.Time `json:"expires_at,omitempty" path:"expires_at,omitempty" url:"expires_at,omitempty"`
    16  	Key              string     `json:"key,omitempty" path:"key,omitempty" url:"key,omitempty"`
    17  	LastUseAt        *time.Time `json:"last_use_at,omitempty" path:"last_use_at,omitempty" url:"last_use_at,omitempty"`
    18  	Name             string     `json:"name,omitempty" path:"name,omitempty" url:"name,omitempty"`
    19  	PermissionSet    string     `json:"permission_set,omitempty" path:"permission_set,omitempty" url:"permission_set,omitempty"`
    20  	Platform         string     `json:"platform,omitempty" path:"platform,omitempty" url:"platform,omitempty"`
    21  	Url              string     `json:"url,omitempty" path:"url,omitempty" url:"url,omitempty"`
    22  	UserId           int64      `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"`
    23  }
    24  
    25  func (a ApiKey) Identifier() interface{} {
    26  	return a.Id
    27  }
    28  
    29  type ApiKeyCollection []ApiKey
    30  
    31  type ApiKeyPermissionSetEnum string
    32  
    33  func (u ApiKeyPermissionSetEnum) String() string {
    34  	return string(u)
    35  }
    36  
    37  func (u ApiKeyPermissionSetEnum) Enum() map[string]ApiKeyPermissionSetEnum {
    38  	return map[string]ApiKeyPermissionSetEnum{
    39  		"none":               ApiKeyPermissionSetEnum("none"),
    40  		"full":               ApiKeyPermissionSetEnum("full"),
    41  		"desktop_app":        ApiKeyPermissionSetEnum("desktop_app"),
    42  		"sync_app":           ApiKeyPermissionSetEnum("sync_app"),
    43  		"office_integration": ApiKeyPermissionSetEnum("office_integration"),
    44  		"mobile_app":         ApiKeyPermissionSetEnum("mobile_app"),
    45  	}
    46  }
    47  
    48  type ApiKeyListParams struct {
    49  	UserId     int64                  `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"`
    50  	SortBy     map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"`
    51  	Filter     ApiKey                 `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"`
    52  	FilterGt   map[string]interface{} `url:"filter_gt,omitempty" required:"false" json:"filter_gt,omitempty" path:"filter_gt"`
    53  	FilterGteq map[string]interface{} `url:"filter_gteq,omitempty" required:"false" json:"filter_gteq,omitempty" path:"filter_gteq"`
    54  	FilterLt   map[string]interface{} `url:"filter_lt,omitempty" required:"false" json:"filter_lt,omitempty" path:"filter_lt"`
    55  	FilterLteq map[string]interface{} `url:"filter_lteq,omitempty" required:"false" json:"filter_lteq,omitempty" path:"filter_lteq"`
    56  	ListParams
    57  }
    58  
    59  type ApiKeyFindParams struct {
    60  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
    61  }
    62  
    63  type ApiKeyCreateParams struct {
    64  	UserId        int64                   `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"`
    65  	Description   string                  `url:"description,omitempty" required:"false" json:"description,omitempty" path:"description"`
    66  	ExpiresAt     *time.Time              `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"`
    67  	PermissionSet ApiKeyPermissionSetEnum `url:"permission_set,omitempty" required:"false" json:"permission_set,omitempty" path:"permission_set"`
    68  	Name          string                  `url:"name,omitempty" required:"true" json:"name,omitempty" path:"name"`
    69  }
    70  
    71  type ApiKeyUpdateCurrentParams struct {
    72  	ExpiresAt     *time.Time              `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"`
    73  	Name          string                  `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"`
    74  	PermissionSet ApiKeyPermissionSetEnum `url:"permission_set,omitempty" required:"false" json:"permission_set,omitempty" path:"permission_set"`
    75  }
    76  
    77  type ApiKeyUpdateParams struct {
    78  	Id            int64                   `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
    79  	Description   string                  `url:"description,omitempty" required:"false" json:"description,omitempty" path:"description"`
    80  	ExpiresAt     *time.Time              `url:"expires_at,omitempty" required:"false" json:"expires_at,omitempty" path:"expires_at"`
    81  	PermissionSet ApiKeyPermissionSetEnum `url:"permission_set,omitempty" required:"false" json:"permission_set,omitempty" path:"permission_set"`
    82  	Name          string                  `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"`
    83  }
    84  
    85  type ApiKeyDeleteParams struct {
    86  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
    87  }
    88  
    89  func (a *ApiKey) UnmarshalJSON(data []byte) error {
    90  	type apiKey ApiKey
    91  	var v apiKey
    92  	if err := json.Unmarshal(data, &v); err != nil {
    93  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
    94  	}
    95  
    96  	*a = ApiKey(v)
    97  	return nil
    98  }
    99  
   100  func (a *ApiKeyCollection) UnmarshalJSON(data []byte) error {
   101  	type apiKeys ApiKeyCollection
   102  	var v apiKeys
   103  	if err := json.Unmarshal(data, &v); err != nil {
   104  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
   105  	}
   106  
   107  	*a = ApiKeyCollection(v)
   108  	return nil
   109  }
   110  
   111  func (a *ApiKeyCollection) ToSlice() *[]interface{} {
   112  	ret := make([]interface{}, len(*a))
   113  	for i, v := range *a {
   114  		ret[i] = v
   115  	}
   116  
   117  	return &ret
   118  }