github.com/Files-com/files-sdk-go/v2@v2.1.2/notification.go (about) 1 package files_sdk 2 3 import ( 4 "encoding/json" 5 6 lib "github.com/Files-com/files-sdk-go/v2/lib" 7 ) 8 9 type Notification 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 GroupId int64 `json:"group_id,omitempty" path:"group_id,omitempty" url:"group_id,omitempty"` 13 GroupName string `json:"group_name,omitempty" path:"group_name,omitempty" url:"group_name,omitempty"` 14 TriggeringGroupIds []int64 `json:"triggering_group_ids,omitempty" path:"triggering_group_ids,omitempty" url:"triggering_group_ids,omitempty"` 15 TriggeringUserIds []int64 `json:"triggering_user_ids,omitempty" path:"triggering_user_ids,omitempty" url:"triggering_user_ids,omitempty"` 16 TriggerByShareRecipients *bool `json:"trigger_by_share_recipients,omitempty" path:"trigger_by_share_recipients,omitempty" url:"trigger_by_share_recipients,omitempty"` 17 NotifyUserActions *bool `json:"notify_user_actions,omitempty" path:"notify_user_actions,omitempty" url:"notify_user_actions,omitempty"` 18 NotifyOnCopy *bool `json:"notify_on_copy,omitempty" path:"notify_on_copy,omitempty" url:"notify_on_copy,omitempty"` 19 NotifyOnDelete *bool `json:"notify_on_delete,omitempty" path:"notify_on_delete,omitempty" url:"notify_on_delete,omitempty"` 20 NotifyOnDownload *bool `json:"notify_on_download,omitempty" path:"notify_on_download,omitempty" url:"notify_on_download,omitempty"` 21 NotifyOnMove *bool `json:"notify_on_move,omitempty" path:"notify_on_move,omitempty" url:"notify_on_move,omitempty"` 22 NotifyOnUpload *bool `json:"notify_on_upload,omitempty" path:"notify_on_upload,omitempty" url:"notify_on_upload,omitempty"` 23 Recursive *bool `json:"recursive,omitempty" path:"recursive,omitempty" url:"recursive,omitempty"` 24 SendInterval string `json:"send_interval,omitempty" path:"send_interval,omitempty" url:"send_interval,omitempty"` 25 Message string `json:"message,omitempty" path:"message,omitempty" url:"message,omitempty"` 26 TriggeringFilenames []string `json:"triggering_filenames,omitempty" path:"triggering_filenames,omitempty" url:"triggering_filenames,omitempty"` 27 Unsubscribed *bool `json:"unsubscribed,omitempty" path:"unsubscribed,omitempty" url:"unsubscribed,omitempty"` 28 UnsubscribedReason string `json:"unsubscribed_reason,omitempty" path:"unsubscribed_reason,omitempty" url:"unsubscribed_reason,omitempty"` 29 UserId int64 `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"` 30 Username string `json:"username,omitempty" path:"username,omitempty" url:"username,omitempty"` 31 SuppressedEmail *bool `json:"suppressed_email,omitempty" path:"suppressed_email,omitempty" url:"suppressed_email,omitempty"` 32 } 33 34 func (n Notification) Identifier() interface{} { 35 return n.Id 36 } 37 38 type NotificationCollection []Notification 39 40 type NotificationListParams struct { 41 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 42 SortBy map[string]interface{} `url:"sort_by,omitempty" required:"false" json:"sort_by,omitempty" path:"sort_by"` 43 Filter Notification `url:"filter,omitempty" required:"false" json:"filter,omitempty" path:"filter"` 44 FilterPrefix map[string]interface{} `url:"filter_prefix,omitempty" required:"false" json:"filter_prefix,omitempty" path:"filter_prefix"` 45 Path string `url:"path,omitempty" required:"false" json:"path,omitempty" path:"path"` 46 IncludeAncestors *bool `url:"include_ancestors,omitempty" required:"false" json:"include_ancestors,omitempty" path:"include_ancestors"` 47 GroupId string `url:"group_id,omitempty" required:"false" json:"group_id,omitempty" path:"group_id"` 48 ListParams 49 } 50 51 type NotificationFindParams struct { 52 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 53 } 54 55 type NotificationCreateParams struct { 56 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 57 NotifyOnCopy *bool `url:"notify_on_copy,omitempty" required:"false" json:"notify_on_copy,omitempty" path:"notify_on_copy"` 58 NotifyOnDelete *bool `url:"notify_on_delete,omitempty" required:"false" json:"notify_on_delete,omitempty" path:"notify_on_delete"` 59 NotifyOnDownload *bool `url:"notify_on_download,omitempty" required:"false" json:"notify_on_download,omitempty" path:"notify_on_download"` 60 NotifyOnMove *bool `url:"notify_on_move,omitempty" required:"false" json:"notify_on_move,omitempty" path:"notify_on_move"` 61 NotifyOnUpload *bool `url:"notify_on_upload,omitempty" required:"false" json:"notify_on_upload,omitempty" path:"notify_on_upload"` 62 NotifyUserActions *bool `url:"notify_user_actions,omitempty" required:"false" json:"notify_user_actions,omitempty" path:"notify_user_actions"` 63 Recursive *bool `url:"recursive,omitempty" required:"false" json:"recursive,omitempty" path:"recursive"` 64 SendInterval string `url:"send_interval,omitempty" required:"false" json:"send_interval,omitempty" path:"send_interval"` 65 Message string `url:"message,omitempty" required:"false" json:"message,omitempty" path:"message"` 66 TriggeringFilenames []string `url:"triggering_filenames,omitempty" required:"false" json:"triggering_filenames,omitempty" path:"triggering_filenames"` 67 TriggeringGroupIds []int64 `url:"triggering_group_ids,omitempty" required:"false" json:"triggering_group_ids,omitempty" path:"triggering_group_ids"` 68 TriggeringUserIds []int64 `url:"triggering_user_ids,omitempty" required:"false" json:"triggering_user_ids,omitempty" path:"triggering_user_ids"` 69 TriggerByShareRecipients *bool `url:"trigger_by_share_recipients,omitempty" required:"false" json:"trigger_by_share_recipients,omitempty" path:"trigger_by_share_recipients"` 70 GroupId int64 `url:"group_id,omitempty" required:"false" json:"group_id,omitempty" path:"group_id"` 71 Path string `url:"path,omitempty" required:"false" json:"path,omitempty" path:"path"` 72 Username string `url:"username,omitempty" required:"false" json:"username,omitempty" path:"username"` 73 } 74 75 type NotificationUpdateParams struct { 76 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 77 NotifyOnCopy *bool `url:"notify_on_copy,omitempty" required:"false" json:"notify_on_copy,omitempty" path:"notify_on_copy"` 78 NotifyOnDelete *bool `url:"notify_on_delete,omitempty" required:"false" json:"notify_on_delete,omitempty" path:"notify_on_delete"` 79 NotifyOnDownload *bool `url:"notify_on_download,omitempty" required:"false" json:"notify_on_download,omitempty" path:"notify_on_download"` 80 NotifyOnMove *bool `url:"notify_on_move,omitempty" required:"false" json:"notify_on_move,omitempty" path:"notify_on_move"` 81 NotifyOnUpload *bool `url:"notify_on_upload,omitempty" required:"false" json:"notify_on_upload,omitempty" path:"notify_on_upload"` 82 NotifyUserActions *bool `url:"notify_user_actions,omitempty" required:"false" json:"notify_user_actions,omitempty" path:"notify_user_actions"` 83 Recursive *bool `url:"recursive,omitempty" required:"false" json:"recursive,omitempty" path:"recursive"` 84 SendInterval string `url:"send_interval,omitempty" required:"false" json:"send_interval,omitempty" path:"send_interval"` 85 Message string `url:"message,omitempty" required:"false" json:"message,omitempty" path:"message"` 86 TriggeringFilenames []string `url:"triggering_filenames,omitempty" required:"false" json:"triggering_filenames,omitempty" path:"triggering_filenames"` 87 TriggeringGroupIds []int64 `url:"triggering_group_ids,omitempty" required:"false" json:"triggering_group_ids,omitempty" path:"triggering_group_ids"` 88 TriggeringUserIds []int64 `url:"triggering_user_ids,omitempty" required:"false" json:"triggering_user_ids,omitempty" path:"triggering_user_ids"` 89 TriggerByShareRecipients *bool `url:"trigger_by_share_recipients,omitempty" required:"false" json:"trigger_by_share_recipients,omitempty" path:"trigger_by_share_recipients"` 90 } 91 92 type NotificationDeleteParams struct { 93 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 94 } 95 96 func (n *Notification) UnmarshalJSON(data []byte) error { 97 type notification Notification 98 var v notification 99 if err := json.Unmarshal(data, &v); err != nil { 100 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 101 } 102 103 *n = Notification(v) 104 return nil 105 } 106 107 func (n *NotificationCollection) UnmarshalJSON(data []byte) error { 108 type notifications NotificationCollection 109 var v notifications 110 if err := json.Unmarshal(data, &v); err != nil { 111 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 112 } 113 114 *n = NotificationCollection(v) 115 return nil 116 } 117 118 func (n *NotificationCollection) ToSlice() *[]interface{} { 119 ret := make([]interface{}, len(*n)) 120 for i, v := range *n { 121 ret[i] = v 122 } 123 124 return &ret 125 }