add api to create community for testing (#3818)

This commit is contained in:
frank 2023-08-03 08:24:11 +08:00 committed by GitHub
parent 9ae632893c
commit 60143556ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 150 additions and 1 deletions

View File

@ -1 +1 @@
0.162.13 0.162.14

View File

@ -0,0 +1,134 @@
package protocol
import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/params"
"github.com/status-im/status-go/protocol/protobuf"
"github.com/status-im/status-go/protocol/requests"
)
func (m *Messenger) createCommunityChat(communityID types.HexBytes, name string) (*MessengerResponse, error) {
return m.CreateCommunityChat(communityID, &protobuf.CommunityChat{
Permissions: &protobuf.CommunityPermissions{
Access: protobuf.CommunityPermissions_NO_MEMBERSHIP,
},
Identity: &protobuf.ChatIdentity{
DisplayName: name,
Description: name,
},
})
}
func (m *Messenger) CreateClosedCommunity() (*MessengerResponse, error) {
response, err := m.CreateCommunity(&requests.CreateCommunity{
Name: "closed community",
Description: "closed community to check membership requests",
Color: "#887af9",
HistoryArchiveSupportEnabled: true,
Membership: protobuf.CommunityPermissions_ON_REQUEST,
PinMessageAllMembersEnabled: true,
}, true)
if err != nil {
return nil, err
}
community := response.Communities()[0]
cid := community.ID()
var (
catsChannelID string
dogsChannelID string
rulesChannelID string
)
response2, err := m.createCommunityChat(cid, "cats")
if err != nil {
return nil, err
}
catsChannelID = response2.Chats()[0].CommunityChatID()
if err = response.Merge(response2); err != nil {
return nil, err
}
response2, err = m.createCommunityChat(cid, "dogs")
if err != nil {
return nil, err
}
dogsChannelID = response2.Chats()[0].CommunityChatID()
if err = response.Merge(response2); err != nil {
return nil, err
}
response2, err = m.createCommunityChat(cid, "rules")
if err != nil {
return nil, err
}
rulesChannelID = response2.Chats()[0].CommunityChatID()
if err = response.Merge(response2); err != nil {
return nil, err
}
response2, err = m.CreateCommunityCategory(&requests.CreateCommunityCategory{
CommunityID: cid,
CategoryName: "pets",
ChatIDs: []string{catsChannelID, dogsChannelID},
})
if err != nil {
return nil, err
}
if err = response.Merge(response2); err != nil {
return nil, err
}
response2, err = m.CreateCommunityCategory(&requests.CreateCommunityCategory{
CommunityID: cid,
CategoryName: "household",
ChatIDs: []string{rulesChannelID},
})
if err != nil {
return nil, err
}
if err = response.Merge(response2); err != nil {
return nil, err
}
return response, nil
}
func (m *Messenger) CreateOpenCommunity() (*MessengerResponse, error) {
response, err := m.CreateCommunity(&requests.CreateCommunity{
Name: "open community",
Description: "open community to join with no requests",
Color: "#26a69a",
HistoryArchiveSupportEnabled: true,
Membership: protobuf.CommunityPermissions_NO_MEMBERSHIP,
PinMessageAllMembersEnabled: false,
}, true)
return response, err
}
func (m *Messenger) CreateTokenGatedCommunity() (*MessengerResponse, error) {
response, err := m.CreateCommunity(&requests.CreateCommunity{
Name: "SNT community",
Description: "require 10 SNT Goerli to use",
Color: "#eab700",
HistoryArchiveSupportEnabled: true,
Membership: protobuf.CommunityPermissions_ON_REQUEST,
PinMessageAllMembersEnabled: false,
}, true)
if err != nil {
return nil, err
}
community := response.Communities()[0]
cid := community.ID()
generalChatID := response.Chats()[0].CommunityChatID()
return m.CreateCommunityTokenPermission(&requests.CreateCommunityTokenPermission{
CommunityID: cid,
Type: protobuf.CommunityTokenPermission_BECOME_MEMBER,
TokenCriteria: []*protobuf.TokenCriteria{{
ContractAddresses: map[uint64]string{params.GoerliNetworkID: "0x3D6AFAA395C31FCd391fE3D562E75fe9E8ec7E6a"},
Type: protobuf.CommunityTokenType_ERC20,
Symbol: "STT",
Name: "Status Test Token",
Amount: "10",
Decimals: 18,
}},
ChatIds: []string{generalChatID},
})
}

View File

@ -1453,6 +1453,21 @@ func (api *PublicAPI) GetCheckChannelPermissionResponses(parent context.Context,
return api.service.messenger.GetCommunityCheckChannelPermissionResponses(communityID) return api.service.messenger.GetCommunityCheckChannelPermissionResponses(communityID)
} }
// CreateClosedCommunity used only for test purposes
func (api *PublicAPI) CreateClosedCommunity() (*protocol.MessengerResponse, error) {
return api.service.messenger.CreateClosedCommunity()
}
// CreateOpenCommunity used only for test purposes
func (api *PublicAPI) CreateOpenCommunity() (*protocol.MessengerResponse, error) {
return api.service.messenger.CreateOpenCommunity()
}
// CreateTokenGatedCommunity used only for test purposes
func (api *PublicAPI) CreateTokenGatedCommunity() (*protocol.MessengerResponse, error) {
return api.service.messenger.CreateTokenGatedCommunity()
}
// ----- // -----
// HELPER // HELPER
// ----- // -----