github.com/Files-com/files-sdk-go/v2@v2.1.2/message.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 Message struct { 10 Id int64 `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"` 11 Subject string `json:"subject,omitempty" path:"subject,omitempty" url:"subject,omitempty"` 12 Body string `json:"body,omitempty" path:"body,omitempty" url:"body,omitempty"` 13 Comments []string `json:"comments,omitempty" path:"comments,omitempty" url:"comments,omitempty"` 14 UserId int64 `json:"user_id,omitempty" path:"user_id,omitempty" url:"user_id,omitempty"` 15 ProjectId int64 `json:"project_id,omitempty" path:"project_id,omitempty" url:"project_id,omitempty"` 16 } 17 18 func (m Message) Identifier() interface{} { 19 return m.Id 20 } 21 22 type MessageCollection []Message 23 24 type MessageListParams struct { 25 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 26 ProjectId int64 `url:"project_id,omitempty" required:"true" json:"project_id,omitempty" path:"project_id"` 27 ListParams 28 } 29 30 type MessageFindParams struct { 31 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 32 } 33 34 type MessageCreateParams struct { 35 UserId int64 `url:"user_id,omitempty" required:"false" json:"user_id,omitempty" path:"user_id"` 36 ProjectId int64 `url:"project_id,omitempty" required:"true" json:"project_id,omitempty" path:"project_id"` 37 Subject string `url:"subject,omitempty" required:"true" json:"subject,omitempty" path:"subject"` 38 Body string `url:"body,omitempty" required:"true" json:"body,omitempty" path:"body"` 39 } 40 41 type MessageUpdateParams struct { 42 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 43 ProjectId int64 `url:"project_id,omitempty" required:"true" json:"project_id,omitempty" path:"project_id"` 44 Subject string `url:"subject,omitempty" required:"true" json:"subject,omitempty" path:"subject"` 45 Body string `url:"body,omitempty" required:"true" json:"body,omitempty" path:"body"` 46 } 47 48 type MessageDeleteParams struct { 49 Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"` 50 } 51 52 func (m *Message) UnmarshalJSON(data []byte) error { 53 type message Message 54 var v message 55 if err := json.Unmarshal(data, &v); err != nil { 56 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{}) 57 } 58 59 *m = Message(v) 60 return nil 61 } 62 63 func (m *MessageCollection) UnmarshalJSON(data []byte) error { 64 type messages MessageCollection 65 var v messages 66 if err := json.Unmarshal(data, &v); err != nil { 67 return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{}) 68 } 69 70 *m = MessageCollection(v) 71 return nil 72 } 73 74 func (m *MessageCollection) ToSlice() *[]interface{} { 75 ret := make([]interface{}, len(*m)) 76 for i, v := range *m { 77 ret[i] = v 78 } 79 80 return &ret 81 }