fx: deprecate profile and timeline chats (#3809)
This commit is contained in:
parent
fbffcdc7a7
commit
d535cd95f8
|
@ -0,0 +1,31 @@
|
||||||
|
package deprecation
|
||||||
|
|
||||||
|
const (
|
||||||
|
ChatProfileDeprecated = true
|
||||||
|
ChatTimelineDeprecated = true
|
||||||
|
)
|
||||||
|
|
||||||
|
func AddChatsCount(count int) int {
|
||||||
|
var add = 0
|
||||||
|
if !ChatProfileDeprecated {
|
||||||
|
add++
|
||||||
|
}
|
||||||
|
if !ChatTimelineDeprecated {
|
||||||
|
add++
|
||||||
|
}
|
||||||
|
return count + add
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddProfileFiltersCount(count int) int {
|
||||||
|
if ChatProfileDeprecated {
|
||||||
|
return count
|
||||||
|
}
|
||||||
|
return count + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddTimelineFiltersCount(count int) int {
|
||||||
|
if ChatTimelineDeprecated {
|
||||||
|
return count
|
||||||
|
}
|
||||||
|
return count + 1
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/deprecation"
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
userimage "github.com/status-im/status-go/images"
|
userimage "github.com/status-im/status-go/images"
|
||||||
|
@ -32,7 +33,11 @@ const (
|
||||||
ChatTypeOneToOne ChatType = iota + 1
|
ChatTypeOneToOne ChatType = iota + 1
|
||||||
ChatTypePublic
|
ChatTypePublic
|
||||||
ChatTypePrivateGroupChat
|
ChatTypePrivateGroupChat
|
||||||
|
// Deprecated: CreateProfileChat shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
ChatTypeProfile
|
ChatTypeProfile
|
||||||
|
// Deprecated: ChatTypeTimeline shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
ChatTypeTimeline
|
ChatTypeTimeline
|
||||||
ChatTypeCommunityChat
|
ChatTypeCommunityChat
|
||||||
)
|
)
|
||||||
|
@ -63,6 +68,7 @@ const (
|
||||||
const pkStringLength = 68
|
const pkStringLength = 68
|
||||||
|
|
||||||
// timelineChatID is a magic constant id for your own timeline
|
// timelineChatID is a magic constant id for your own timeline
|
||||||
|
// Deprecated: timeline chats are no more supported
|
||||||
const timelineChatID = "@timeline70bd746ddcc12beb96b2c9d572d0784ab137ffc774f5383e50585a932080b57cca0484b259e61cecbaa33a4c98a300a"
|
const timelineChatID = "@timeline70bd746ddcc12beb96b2c9d572d0784ab137ffc774f5383e50585a932080b57cca0484b259e61cecbaa33a4c98a300a"
|
||||||
|
|
||||||
type Chat struct {
|
type Chat struct {
|
||||||
|
@ -241,10 +247,14 @@ func (c *Chat) Public() bool {
|
||||||
return c.ChatType == ChatTypePublic
|
return c.ChatType == ChatTypePublic
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: ProfileUpdates shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func (c *Chat) ProfileUpdates() bool {
|
func (c *Chat) ProfileUpdates() bool {
|
||||||
return c.ChatType == ChatTypeProfile || len(c.Profile) > 0
|
return c.ChatType == ChatTypeProfile || len(c.Profile) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: Timeline shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func (c *Chat) Timeline() bool {
|
func (c *Chat) Timeline() bool {
|
||||||
return c.ChatType == ChatTypeTimeline
|
return c.ChatType == ChatTypeTimeline
|
||||||
}
|
}
|
||||||
|
@ -527,11 +537,19 @@ func CreatePublicChat(name string, timesource common.TimeSource) *Chat {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: buildProfileChatID shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func buildProfileChatID(publicKeyString string) string {
|
func buildProfileChatID(publicKeyString string) string {
|
||||||
return "@" + publicKeyString
|
return "@" + publicKeyString
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: CreateProfileChat shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func CreateProfileChat(pubkey string, timesource common.TimeSource) *Chat {
|
func CreateProfileChat(pubkey string, timesource common.TimeSource) *Chat {
|
||||||
|
// Return nil to prevent usage of deprecated function
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
id := buildProfileChatID(pubkey)
|
id := buildProfileChatID(pubkey)
|
||||||
return &Chat{
|
return &Chat{
|
||||||
|
@ -562,7 +580,14 @@ func CreateGroupChat(timesource common.TimeSource) Chat {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: CreateTimelineChat shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func CreateTimelineChat(timesource common.TimeSource) *Chat {
|
func CreateTimelineChat(timesource common.TimeSource) *Chat {
|
||||||
|
// Return nil to prevent usage of deprecated function
|
||||||
|
if deprecation.ChatTimelineDeprecated {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
return &Chat{
|
return &Chat{
|
||||||
ID: timelineChatID,
|
ID: timelineChatID,
|
||||||
Name: "#" + timelineChatID,
|
Name: "#" + timelineChatID,
|
||||||
|
|
|
@ -32,6 +32,7 @@ import (
|
||||||
"github.com/status-im/status-go/appmetrics"
|
"github.com/status-im/status-go/appmetrics"
|
||||||
"github.com/status-im/status-go/connection"
|
"github.com/status-im/status-go/connection"
|
||||||
"github.com/status-im/status-go/contracts"
|
"github.com/status-im/status-go/contracts"
|
||||||
|
"github.com/status-im/status-go/deprecation"
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/images"
|
"github.com/status-im/status-go/images"
|
||||||
|
@ -1721,16 +1722,25 @@ func (m *Messenger) Init() error {
|
||||||
return errors.New("invalid chat type")
|
return errors.New("invalid chat type")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Timeline and profile chats are deprecated.
|
||||||
|
// This code can be removed after some reasonable time.
|
||||||
|
|
||||||
// upsert timeline chat
|
// upsert timeline chat
|
||||||
|
if !deprecation.ChatProfileDeprecated {
|
||||||
err = m.ensureTimelineChat()
|
err = m.ensureTimelineChat()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// upsert profile chat
|
// upsert profile chat
|
||||||
|
if !deprecation.ChatTimelineDeprecated {
|
||||||
err = m.ensureMyOwnProfileChat()
|
err = m.ensureMyOwnProfileChat()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get chat IDs and public keys from the contacts.
|
// Get chat IDs and public keys from the contacts.
|
||||||
contacts, err := m.persistence.Contacts()
|
contacts, err := m.persistence.Contacts()
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/deprecation"
|
||||||
"github.com/status-im/status-go/protocol/common"
|
"github.com/status-im/status-go/protocol/common"
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"github.com/status-im/status-go/protocol/protobuf"
|
||||||
"github.com/status-im/status-go/protocol/requests"
|
"github.com/status-im/status-go/protocol/requests"
|
||||||
|
@ -231,7 +232,14 @@ func (m *Messenger) CreatePublicChat(request *requests.CreatePublicChat) (*Messe
|
||||||
return m.createPublicChat(chatID, response)
|
return m.createPublicChat(chatID, response)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: CreateProfileChat shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func (m *Messenger) CreateProfileChat(request *requests.CreateProfileChat) (*MessengerResponse, error) {
|
func (m *Messenger) CreateProfileChat(request *requests.CreateProfileChat) (*MessengerResponse, error) {
|
||||||
|
// Return error to prevent usage of deprecated function
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
return nil, errors.New("profile chats are deprecated")
|
||||||
|
}
|
||||||
|
|
||||||
if err := request.Validate(); err != nil {
|
if err := request.Validate(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -528,7 +536,14 @@ func (m *Messenger) Join(chat *Chat) ([]*transport.Filter, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: buildProfileChat shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func (m *Messenger) buildProfileChat(id string) *Chat {
|
func (m *Messenger) buildProfileChat(id string) *Chat {
|
||||||
|
// Return nil to prevent usage of deprecated function
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// Create the corresponding profile chat
|
// Create the corresponding profile chat
|
||||||
profileChatID := buildProfileChatID(id)
|
profileChatID := buildProfileChatID(id)
|
||||||
profileChat, ok := m.allChats.Load(profileChatID)
|
profileChat, ok := m.allChats.Load(profileChatID)
|
||||||
|
@ -541,7 +556,14 @@ func (m *Messenger) buildProfileChat(id string) *Chat {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: ensureTimelineChat shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func (m *Messenger) ensureTimelineChat() error {
|
func (m *Messenger) ensureTimelineChat() error {
|
||||||
|
// Return error to prevent usage of deprecated function
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
return errors.New("timeline chats are deprecated")
|
||||||
|
}
|
||||||
|
|
||||||
chat, err := m.persistence.Chat(timelineChatID)
|
chat, err := m.persistence.Chat(timelineChatID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -556,7 +578,14 @@ func (m *Messenger) ensureTimelineChat() error {
|
||||||
return m.saveChat(chat)
|
return m.saveChat(chat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: ensureMyOwnProfileChat shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func (m *Messenger) ensureMyOwnProfileChat() error {
|
func (m *Messenger) ensureMyOwnProfileChat() error {
|
||||||
|
// Return error to prevent usage of deprecated function
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
return errors.New("profile chats are deprecated")
|
||||||
|
}
|
||||||
|
|
||||||
chatID := common.PubkeyToHex(&m.identity.PublicKey)
|
chatID := common.PubkeyToHex(&m.identity.PublicKey)
|
||||||
_, ok := m.allChats.Load(chatID)
|
_, ok := m.allChats.Load(chatID)
|
||||||
if ok {
|
if ok {
|
||||||
|
|
|
@ -180,9 +180,8 @@ func (s *MessengerContactRequestSuite) acceptContactRequest(contactRequest *comm
|
||||||
s.Require().Equal(resp.ActivityCenterNotifications()[0].Name, resp.Contacts[0].PrimaryName())
|
s.Require().Equal(resp.ActivityCenterNotifications()[0].Name, resp.Contacts[0].PrimaryName())
|
||||||
|
|
||||||
// Check we have active chat in the response
|
// Check we have active chat in the response
|
||||||
s.Require().Len(resp.Chats(), 2)
|
s.Require().Len(resp.Chats(), 1)
|
||||||
s.Require().True(resp.Chats()[0].Active) // This is unactive profile chat
|
s.Require().True(resp.Chats()[0].Active)
|
||||||
s.Require().True(resp.Chats()[1].Active)
|
|
||||||
|
|
||||||
// Make sure the sender is added to our contacts
|
// Make sure the sender is added to our contacts
|
||||||
contacts := receiver.AddedContacts()
|
contacts := receiver.AddedContacts()
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/deprecation"
|
||||||
gethbridge "github.com/status-im/status-go/eth-node/bridge/geth"
|
gethbridge "github.com/status-im/status-go/eth-node/bridge/geth"
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
@ -63,6 +64,11 @@ func (s *MessengerContactUpdateSuite) TestReceiveContactUpdate() {
|
||||||
// It should add the contact
|
// It should add the contact
|
||||||
s.Require().True(contact.added())
|
s.Require().True(contact.added())
|
||||||
|
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
// It should a one to one chat
|
||||||
|
s.Require().Len(response.Chats(), 1)
|
||||||
|
s.Require().False(response.Chats()[0].Active)
|
||||||
|
} else {
|
||||||
// It should create a profile chat & a one to one chat
|
// It should create a profile chat & a one to one chat
|
||||||
s.Require().Len(response.Chats(), 2)
|
s.Require().Len(response.Chats(), 2)
|
||||||
chats := response.Chats()
|
chats := response.Chats()
|
||||||
|
@ -71,6 +77,11 @@ func (s *MessengerContactUpdateSuite) TestReceiveContactUpdate() {
|
||||||
} else {
|
} else {
|
||||||
s.Require().False(chats[1].Active)
|
s.Require().False(chats[1].Active)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//// It should a one to one chat
|
||||||
|
//s.Require().Len(response.Chats(), 1)
|
||||||
|
//s.Require().False(response.Chats()[0].Active)
|
||||||
|
|
||||||
// Wait for the message to reach its destination
|
// Wait for the message to reach its destination
|
||||||
response, err = WaitOnMessengerResponse(
|
response, err = WaitOnMessengerResponse(
|
||||||
|
@ -123,8 +134,13 @@ func (s *MessengerContactUpdateSuite) TestAddContact() {
|
||||||
s.Require().Len(response.Contacts, 1)
|
s.Require().Len(response.Contacts, 1)
|
||||||
contact := response.Contacts[0]
|
contact := response.Contacts[0]
|
||||||
|
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
// It adds the one to one chat
|
||||||
|
s.Require().Len(response.Chats(), 1)
|
||||||
|
} else {
|
||||||
// It adds the profile chat and the one to one chat
|
// It adds the profile chat and the one to one chat
|
||||||
s.Require().Len(response.Chats(), 2)
|
s.Require().Len(response.Chats(), 2)
|
||||||
|
}
|
||||||
|
|
||||||
// It should add the contact
|
// It should add the contact
|
||||||
s.Require().True(contact.added())
|
s.Require().True(contact.added())
|
||||||
|
@ -162,8 +178,13 @@ func (s *MessengerContactUpdateSuite) TestAddContactWithENS() {
|
||||||
s.Require().Len(response.Contacts, 1)
|
s.Require().Len(response.Contacts, 1)
|
||||||
contact := response.Contacts[0]
|
contact := response.Contacts[0]
|
||||||
|
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
// It adds the one to one chat
|
||||||
|
s.Require().Len(response.Chats(), 1)
|
||||||
|
} else {
|
||||||
// It adds the profile chat and the one to one chat
|
// It adds the profile chat and the one to one chat
|
||||||
s.Require().Len(response.Chats(), 2)
|
s.Require().Len(response.Chats(), 2)
|
||||||
|
}
|
||||||
|
|
||||||
// It should add the contact
|
// It should add the contact
|
||||||
s.Require().True(contact.added())
|
s.Require().True(contact.added())
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/deprecation"
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/protocol/common"
|
"github.com/status-im/status-go/protocol/common"
|
||||||
|
@ -395,8 +396,13 @@ func (m *Messenger) addContact(ctx context.Context, pubKey, ensName, nickname, d
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the corresponding chat
|
// Profile chats are deprecated.
|
||||||
profileChat := m.buildProfileChat(contact.ID)
|
// Code below can be removed after some reasonable time.
|
||||||
|
|
||||||
|
//Create the corresponding chat
|
||||||
|
var profileChat *Chat
|
||||||
|
if !deprecation.ChatProfileDeprecated {
|
||||||
|
profileChat = m.buildProfileChat(contact.ID)
|
||||||
|
|
||||||
_, err = m.Join(profileChat)
|
_, err = m.Join(profileChat)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -406,6 +412,7 @@ func (m *Messenger) addContact(ctx context.Context, pubKey, ensName, nickname, d
|
||||||
if err := m.saveChat(profileChat); err != nil {
|
if err := m.saveChat(profileChat); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
publicKey, err := contact.PublicKey()
|
publicKey, err := contact.PublicKey()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -454,13 +461,18 @@ func (m *Messenger) addContact(ctx context.Context, pubKey, ensName, nickname, d
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Profile chats are deprecated.
|
||||||
|
// Code below can be removed after some reasonable time.
|
||||||
|
|
||||||
// Add chat
|
// Add chat
|
||||||
|
if !deprecation.ChatProfileDeprecated {
|
||||||
response.AddChat(profileChat)
|
response.AddChat(profileChat)
|
||||||
|
|
||||||
_, err = m.transport.InitFilters([]string{profileChat.ID}, []*ecdsa.PublicKey{publicKey})
|
_, err = m.transport.InitFilters([]string{profileChat.ID}, []*ecdsa.PublicKey{publicKey})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Publish contact code
|
// Publish contact code
|
||||||
err = m.publishContactCode()
|
err = m.publishContactCode()
|
||||||
|
@ -643,7 +655,11 @@ func (m *Messenger) removeContact(ctx context.Context, response *MessengerRespon
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the corresponding profile chat
|
// Profile chats are deprecated.
|
||||||
|
// Code below can be removed after some reasonable time.
|
||||||
|
|
||||||
|
//Create the corresponding profile chat
|
||||||
|
if !deprecation.ChatProfileDeprecated {
|
||||||
profileChatID := buildProfileChatID(contact.ID)
|
profileChatID := buildProfileChatID(contact.ID)
|
||||||
_, ok = m.allChats.Load(profileChatID)
|
_, ok = m.allChats.Load(profileChatID)
|
||||||
|
|
||||||
|
@ -657,6 +673,7 @@ func (m *Messenger) removeContact(ctx context.Context, response *MessengerRespon
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
response.Contacts = []*Contact{contact}
|
response.Contacts = []*Contact{contact}
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/deprecation"
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/protocol/requests"
|
"github.com/status-im/status-go/protocol/requests"
|
||||||
)
|
)
|
||||||
|
@ -43,7 +44,7 @@ func (s *MessengerMuteSuite) TestSetMute() {
|
||||||
s.NoError(error)
|
s.NoError(error)
|
||||||
|
|
||||||
allChats := s.m.Chats()
|
allChats := s.m.Chats()
|
||||||
s.Require().Len(allChats, 3)
|
s.Require().Len(allChats, deprecation.AddChatsCount(1))
|
||||||
|
|
||||||
var actualChat *Chat
|
var actualChat *Chat
|
||||||
|
|
||||||
|
@ -93,7 +94,7 @@ func (s *MessengerMuteSuite) TestSetMuteForDuration() {
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
allChats := s.m.Chats()
|
allChats := s.m.Chats()
|
||||||
s.Require().Len(allChats, 3)
|
s.Require().Len(allChats, deprecation.AddChatsCount(1))
|
||||||
|
|
||||||
var actualChat *Chat
|
var actualChat *Chat
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/deprecation"
|
||||||
coretypes "github.com/status-im/status-go/eth-node/core/types"
|
coretypes "github.com/status-im/status-go/eth-node/core/types"
|
||||||
"github.com/status-im/status-go/eth-node/crypto"
|
"github.com/status-im/status-go/eth-node/crypto"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
|
@ -163,7 +164,7 @@ func (s *MessengerSuite) TestInit() {
|
||||||
_, err = s.m.AddContact(context.Background(), &requests.AddContact{ID: types.EncodeHex(crypto.FromECDSAPub(&key.PublicKey))})
|
_, err = s.m.AddContact(context.Background(), &requests.AddContact{ID: types.EncodeHex(crypto.FromECDSAPub(&key.PublicKey))})
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
},
|
},
|
||||||
AddedFilters: 2,
|
AddedFilters: deprecation.AddProfileFiltersCount(1),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,7 +176,7 @@ func (s *MessengerSuite) TestInit() {
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
filters := s.m.transport.Filters()
|
filters := s.m.transport.Filters()
|
||||||
expectedFilters += tc.AddedFilters
|
expectedFilters += tc.AddedFilters
|
||||||
s.Equal(expectedFilters+1, len(filters))
|
s.Equal(deprecation.AddTimelineFiltersCount(expectedFilters), len(filters))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -306,7 +307,7 @@ func (s *MessengerSuite) TestMarkAllRead() {
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
chats := s.m.Chats()
|
chats := s.m.Chats()
|
||||||
s.Require().Len(chats, 3)
|
s.Require().Len(chats, deprecation.AddChatsCount(1))
|
||||||
for idx := range chats {
|
for idx := range chats {
|
||||||
if chats[idx].ID == chat.ID {
|
if chats[idx].ID == chat.ID {
|
||||||
s.Require().Equal(uint(0), chats[idx].UnviewedMessagesCount)
|
s.Require().Equal(uint(0), chats[idx].UnviewedMessagesCount)
|
||||||
|
@ -342,6 +343,11 @@ func (s *MessengerSuite) TestSendPublic() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MessengerSuite) TestSendProfile() {
|
func (s *MessengerSuite) TestSendProfile() {
|
||||||
|
// Early exit to skip testing deprecated code
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
chat := CreateProfileChat("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), s.m.transport)
|
chat := CreateProfileChat("0x"+hex.EncodeToString(crypto.FromECDSAPub(&s.privateKey.PublicKey)), s.m.transport)
|
||||||
chat.LastClockValue = uint64(100000000000000)
|
chat.LastClockValue = uint64(100000000000000)
|
||||||
err := s.m.SaveChat(chat)
|
err := s.m.SaveChat(chat)
|
||||||
|
@ -1057,7 +1063,7 @@ func (s *MessengerSuite) TestChatPersistencePublic() {
|
||||||
|
|
||||||
s.Require().NoError(s.m.SaveChat(chat))
|
s.Require().NoError(s.m.SaveChat(chat))
|
||||||
savedChats := s.m.Chats()
|
savedChats := s.m.Chats()
|
||||||
s.Require().Equal(3, len(savedChats))
|
s.Require().Equal(deprecation.AddChatsCount(1), len(savedChats))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MessengerSuite) TestDeleteChat() {
|
func (s *MessengerSuite) TestDeleteChat() {
|
||||||
|
@ -1078,11 +1084,11 @@ func (s *MessengerSuite) TestDeleteChat() {
|
||||||
|
|
||||||
s.Require().NoError(s.m.SaveChat(chat))
|
s.Require().NoError(s.m.SaveChat(chat))
|
||||||
savedChats := s.m.Chats()
|
savedChats := s.m.Chats()
|
||||||
s.Require().Equal(3, len(savedChats))
|
s.Require().Equal(deprecation.AddChatsCount(1), len(savedChats))
|
||||||
|
|
||||||
s.Require().NoError(s.m.DeleteChat(chatID))
|
s.Require().NoError(s.m.DeleteChat(chatID))
|
||||||
savedChats = s.m.Chats()
|
savedChats = s.m.Chats()
|
||||||
s.Require().Equal(2, len(savedChats))
|
s.Require().Equal(deprecation.AddChatsCount(0), len(savedChats))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MessengerSuite) TestChatPersistenceUpdate() {
|
func (s *MessengerSuite) TestChatPersistenceUpdate() {
|
||||||
|
@ -1102,7 +1108,7 @@ func (s *MessengerSuite) TestChatPersistenceUpdate() {
|
||||||
|
|
||||||
s.Require().NoError(s.m.SaveChat(chat))
|
s.Require().NoError(s.m.SaveChat(chat))
|
||||||
savedChats := s.m.Chats()
|
savedChats := s.m.Chats()
|
||||||
s.Require().Equal(3, len(savedChats))
|
s.Require().Equal(deprecation.AddChatsCount(1), len(savedChats))
|
||||||
|
|
||||||
var actualChat *Chat
|
var actualChat *Chat
|
||||||
for idx := range savedChats {
|
for idx := range savedChats {
|
||||||
|
@ -1152,7 +1158,7 @@ func (s *MessengerSuite) TestChatPersistenceOneToOne() {
|
||||||
|
|
||||||
s.Require().NoError(s.m.SaveChat(chat))
|
s.Require().NoError(s.m.SaveChat(chat))
|
||||||
savedChats := s.m.Chats()
|
savedChats := s.m.Chats()
|
||||||
s.Require().Equal(3, len(savedChats))
|
s.Require().Equal(deprecation.AddChatsCount(1), len(savedChats))
|
||||||
|
|
||||||
var actualChat *Chat
|
var actualChat *Chat
|
||||||
for idx := range savedChats {
|
for idx := range savedChats {
|
||||||
|
@ -1233,7 +1239,7 @@ func (s *MessengerSuite) TestChatPersistencePrivateGroupChat() {
|
||||||
}
|
}
|
||||||
s.Require().NoError(s.m.SaveChat(chat))
|
s.Require().NoError(s.m.SaveChat(chat))
|
||||||
savedChats := s.m.Chats()
|
savedChats := s.m.Chats()
|
||||||
s.Require().Equal(3, len(savedChats))
|
s.Require().Equal(deprecation.AddChatsCount(1), len(savedChats))
|
||||||
|
|
||||||
var actualChat *Chat
|
var actualChat *Chat
|
||||||
for idx := range savedChats {
|
for idx := range savedChats {
|
||||||
|
@ -1425,7 +1431,7 @@ func (s *MessengerSuite) TestBlockContact() {
|
||||||
|
|
||||||
// The chat is deleted
|
// The chat is deleted
|
||||||
actualChats := s.m.Chats()
|
actualChats := s.m.Chats()
|
||||||
s.Require().Equal(4, len(actualChats))
|
s.Require().Equal(deprecation.AddChatsCount(2), len(actualChats))
|
||||||
|
|
||||||
// The messages have been deleted
|
// The messages have been deleted
|
||||||
chat2Messages, _, err := s.m.MessageByChatID(chat2.ID, "", 20)
|
chat2Messages, _, err := s.m.MessageByChatID(chat2.ID, "", 20)
|
||||||
|
|
|
@ -2,17 +2,30 @@ package requests
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
|
"github.com/status-im/status-go/deprecation"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ErrCreateProfileChatInvalidID = errors.New("create-public-chat: invalid id")
|
// Deprecated: errCreateProfileChatInvalidID shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
|
var errCreateProfileChatInvalidID = errors.New("create-public-chat: invalid id")
|
||||||
|
|
||||||
|
// Deprecated: CreateProfileChat shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
type CreateProfileChat struct {
|
type CreateProfileChat struct {
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: Validate shouldn't be used
|
||||||
|
// and is only left here in case profile chat feature is re-introduced.
|
||||||
func (c *CreateProfileChat) Validate() error {
|
func (c *CreateProfileChat) Validate() error {
|
||||||
|
// Return error to prevent usafe of deprecated function
|
||||||
|
if deprecation.ChatProfileDeprecated {
|
||||||
|
return errors.New("profile chats are deprecated")
|
||||||
|
}
|
||||||
|
|
||||||
if len(c.ID) == 0 {
|
if len(c.ID) == 0 {
|
||||||
return ErrCreateProfileChatInvalidID
|
return errCreateProfileChatInvalidID
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue