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