github.com/Files-com/files-sdk-go/v2@v2.1.2/history.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 History struct {
    11  	Id          int64      `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"`
    12  	Path        string     `json:"path,omitempty" path:"path,omitempty" url:"path,omitempty"`
    13  	When        *time.Time `json:"when,omitempty" path:"when,omitempty" url:"when,omitempty"`
    14  	Destination string     `json:"destination,omitempty" path:"destination,omitempty" url:"destination,omitempty"`
    15  	Display     string     `json:"display,omitempty" path:"display,omitempty" url:"display,omitempty"`
    16  	Ip          string     `json:"ip,omitempty" path:"ip,omitempty" url:"ip,omitempty"`
    17  	Source      string     `json:"source,omitempty" path:"source,omitempty" url:"source,omitempty"`
    18  	Targets     []string   `json:"targets,omitempty" path:"targets,omitempty" url:"targets,omitempty"`
    19  	UserId      int64      `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"`
    20  	Username    string     `json:"username,omitempty" path:"username,omitempty" url:"username,omitempty"`
    21  	Action      string     `json:"action,omitempty" path:"action,omitempty" url:"action,omitempty"`
    22  	FailureType string     `json:"failure_type,omitempty" path:"failure_type,omitempty" url:"failure_type,omitempty"`
    23  	Interface   string     `json:"interface,omitempty" path:"interface,omitempty" url:"interface,omitempty"`
    24  }
    25  
    26  func (h History) Identifier() interface{} {
    27  	return h.Id
    28  }
    29  
    30  type HistoryCollection []History
    31  
    32  type HistoryListForFileParams struct {
    33  	StartAt *time.Time             `url:"start_at,omitempty" required:"false" json:"start_at,omitempty" path:"start_at"`
    34  	EndAt   *time.Time             `url:"end_at,omitempty" required:"false" json:"end_at,omitempty" path:"end_at"`
    35  	Display string                 `url:"display,omitempty" required:"false" json:"display,omitempty" path:"display"`
    36  	SortBy  map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"`
    37  	Path    string                 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"path"`
    38  	ListParams
    39  }
    40  
    41  type HistoryListForFolderParams struct {
    42  	StartAt *time.Time             `url:"start_at,omitempty" required:"false" json:"start_at,omitempty" path:"start_at"`
    43  	EndAt   *time.Time             `url:"end_at,omitempty" required:"false" json:"end_at,omitempty" path:"end_at"`
    44  	Display string                 `url:"display,omitempty" required:"false" json:"display,omitempty" path:"display"`
    45  	SortBy  map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"`
    46  	Path    string                 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"path"`
    47  	ListParams
    48  }
    49  
    50  type HistoryListForUserParams struct {
    51  	StartAt *time.Time             `url:"start_at,omitempty" required:"false" json:"start_at,omitempty" path:"start_at"`
    52  	EndAt   *time.Time             `url:"end_at,omitempty" required:"false" json:"end_at,omitempty" path:"end_at"`
    53  	Display string                 `url:"display,omitempty" required:"false" json:"display,omitempty" path:"display"`
    54  	SortBy  map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"`
    55  	UserId  int64                  `url:"-,omitempty" required:"false" json:"-,omitempty" path:"user_id"`
    56  	ListParams
    57  }
    58  
    59  type HistoryListLoginsParams struct {
    60  	StartAt *time.Time             `url:"start_at,omitempty" required:"false" json:"start_at,omitempty" path:"start_at"`
    61  	EndAt   *time.Time             `url:"end_at,omitempty" required:"false" json:"end_at,omitempty" path:"end_at"`
    62  	Display string                 `url:"display,omitempty" required:"false" json:"display,omitempty" path:"display"`
    63  	SortBy  map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"`
    64  	ListParams
    65  }
    66  
    67  type HistoryListParams struct {
    68  	StartAt      *time.Time             `url:"start_at,omitempty" required:"false" json:"start_at,omitempty" path:"start_at"`
    69  	EndAt        *time.Time             `url:"end_at,omitempty" required:"false" json:"end_at,omitempty" path:"end_at"`
    70  	Display      string                 `url:"display,omitempty" required:"false" json:"display,omitempty" path:"display"`
    71  	SortBy       map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"`
    72  	Filter       History                `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"`
    73  	FilterPrefix map[string]interface{} `url:"filter_prefix,omitempty" required:"false" json:"filter_prefix,omitempty" path:"filter_prefix"`
    74  	ListParams
    75  }
    76  
    77  func (h *History) UnmarshalJSON(data []byte) error {
    78  	type history History
    79  	var v history
    80  	if err := json.Unmarshal(data, &v); err != nil {
    81  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
    82  	}
    83  
    84  	*h = History(v)
    85  	return nil
    86  }
    87  
    88  func (h *HistoryCollection) UnmarshalJSON(data []byte) error {
    89  	type historys HistoryCollection
    90  	var v historys
    91  	if err := json.Unmarshal(data, &v); err != nil {
    92  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
    93  	}
    94  
    95  	*h = HistoryCollection(v)
    96  	return nil
    97  }
    98  
    99  func (h *HistoryCollection) ToSlice() *[]interface{} {
   100  	ret := make([]interface{}, len(*h))
   101  	for i, v := range *h {
   102  		ret[i] = v
   103  	}
   104  
   105  	return &ret
   106  }