github.com/status-im/status-go@v1.1.0/protocol/requests/delete_community_member_messages.go (about) 1 package requests 2 3 import ( 4 "errors" 5 6 "github.com/status-im/status-go/eth-node/types" 7 "github.com/status-im/status-go/protocol/protobuf" 8 ) 9 10 var ErrDeleteCommunityMemberMessagesInvalidCommunityID = errors.New("delete-community-member-messages: invalid community id") 11 var ErrDeleteCommunityMemberMessagesInvalidMemberID = errors.New("delete-community-member-messages: invalid member id") 12 var ErrDeleteCommunityMemberMessagesInvalidData = errors.New("delete-community-member-messages: invalid data") 13 var ErrDeleteCommunityMemberMessagesInvalidDeleteAll = errors.New("delete-community-member-messages: invalid delete all setup") 14 var ErrDeleteCommunityMemberMessagesInvalidDeleteMessagesByID = errors.New("delete-community-member-messages: invalid delete messages by ID setups") 15 var ErrDeleteCommunityMemberMessagesInvalidMsgID = errors.New("delete-community-member-messages: invalid messages Id") 16 var ErrDeleteCommunityMemberMessagesInvalidMsgChatID = errors.New("delete-community-member-messages: invalid messages chatId") 17 18 type DeleteCommunityMemberMessages struct { 19 CommunityID types.HexBytes `json:"communityId"` 20 MemberPubKey string `json:"memberPubKey"` 21 Messages []*protobuf.DeleteCommunityMemberMessage `json:"messages"` 22 DeleteAll bool `json:"deleteAll"` 23 } 24 25 func (d *DeleteCommunityMemberMessages) Validate() error { 26 if len(d.CommunityID) == 0 { 27 return ErrDeleteCommunityMemberMessagesInvalidCommunityID 28 } 29 30 if len(d.MemberPubKey) == 0 { 31 return ErrDeleteCommunityMemberMessagesInvalidMemberID 32 } 33 34 if d.Messages != nil && len(d.Messages) > 0 && d.DeleteAll { 35 return ErrDeleteCommunityMemberMessagesInvalidDeleteAll 36 } 37 38 if (d.Messages == nil || (d.Messages != nil && len(d.Messages) == 0)) && !d.DeleteAll { 39 return ErrDeleteCommunityMemberMessagesInvalidDeleteMessagesByID 40 } 41 42 if d.Messages != nil { 43 for _, message := range d.Messages { 44 if len(message.Id) == 0 { 45 return ErrDeleteCommunityMemberMessagesInvalidMsgID 46 } 47 if len(message.ChatId) == 0 { 48 return ErrDeleteCommunityMemberMessagesInvalidMsgChatID 49 } 50 } 51 } 52 53 return nil 54 }