fix(AddCommunityToken): Change AddCommunityToken API call

The function returns object with image converted to base64 format.

Issue #9866
This commit is contained in:
Michal Iskierko 2023-03-14 13:02:30 +01:00 committed by Michał Iskierko
parent 68d9ba64b7
commit 736766ec37
3 changed files with 33 additions and 8 deletions

View File

@ -4,6 +4,7 @@ import (
"crypto/ecdsa" "crypto/ecdsa"
"database/sql" "database/sql"
"fmt" "fmt"
"io/ioutil"
"net" "net"
"os" "os"
"sort" "sort"
@ -22,6 +23,7 @@ import (
"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/params" "github.com/status-im/status-go/params"
"github.com/status-im/status-go/protocol/common" "github.com/status-im/status-go/protocol/common"
"github.com/status-im/status-go/protocol/encryption" "github.com/status-im/status-go/protocol/encryption"
@ -2701,16 +2703,39 @@ func (m *Manager) GetCommunityTokens(communityID string) ([]*CommunityToken, err
return m.persistence.GetCommunityTokens(communityID) return m.persistence.GetCommunityTokens(communityID)
} }
func (m *Manager) AddCommunityToken(token *CommunityToken) error { func (m *Manager) ImageToBase64(uri string) string {
file, err := os.Open(uri)
if err != nil {
m.logger.Error(err.Error())
return ""
}
defer file.Close()
payload, err := ioutil.ReadAll(file)
if err != nil {
m.logger.Error(err.Error())
return ""
}
base64img, err := images.GetPayloadDataURI(payload)
if err != nil {
m.logger.Error(err.Error())
return ""
}
return base64img
}
func (m *Manager) AddCommunityToken(token *CommunityToken) (*CommunityToken, error) {
community, err := m.GetByIDString(token.CommunityID) community, err := m.GetByIDString(token.CommunityID)
if err != nil { if err != nil {
return err return nil, err
} }
if community == nil { if community == nil {
return ErrOrgNotFound return nil, ErrOrgNotFound
} }
token.Base64Image = m.ImageToBase64(token.Base64Image)
tokenMetadata := &protobuf.CommunityTokenMetadata{ tokenMetadata := &protobuf.CommunityTokenMetadata{
ContractAddresses: map[uint64]string{uint64(token.ChainID): token.Address}, ContractAddresses: map[uint64]string{uint64(token.ChainID): token.Address},
Description: token.Description, Description: token.Description,
@ -2721,17 +2746,17 @@ func (m *Manager) AddCommunityToken(token *CommunityToken) error {
} }
_, err = community.AddCommunityTokensMetadata(tokenMetadata) _, err = community.AddCommunityTokensMetadata(tokenMetadata)
if err != nil { if err != nil {
return err return nil, err
} }
err = m.persistence.SaveCommunity(community) err = m.persistence.SaveCommunity(community)
if err != nil { if err != nil {
return err return nil, err
} }
m.publish(&Subscription{Community: community}) m.publish(&Subscription{Community: community})
return m.persistence.AddCommunityToken(token) return token, m.persistence.AddCommunityToken(token)
} }
func (m *Manager) UpdateCommunityTokenState(contractAddress string, deployState DeployState) error { func (m *Manager) UpdateCommunityTokenState(contractAddress string, deployState DeployState) error {

View File

@ -3340,7 +3340,7 @@ func (m *Messenger) GetCommunityTokens(communityID string) ([]*communities.Commu
return m.communitiesManager.GetCommunityTokens(communityID) return m.communitiesManager.GetCommunityTokens(communityID)
} }
func (m *Messenger) AddCommunityToken(token *communities.CommunityToken) error { func (m *Messenger) AddCommunityToken(token *communities.CommunityToken) (*communities.CommunityToken, error) {
return m.communitiesManager.AddCommunityToken(token) return m.communitiesManager.AddCommunityToken(token)
} }

View File

@ -1265,7 +1265,7 @@ func (api *PublicAPI) GetCommunityTokens(communityID string) ([]*communities.Com
return api.service.messenger.GetCommunityTokens(communityID) return api.service.messenger.GetCommunityTokens(communityID)
} }
func (api *PublicAPI) AddCommunityToken(token *communities.CommunityToken) error { func (api *PublicAPI) AddCommunityToken(token *communities.CommunityToken) (*communities.CommunityToken, error) {
return api.service.messenger.AddCommunityToken(token) return api.service.messenger.AddCommunityToken(token)
} }