mirror of
https://github.com/status-im/status-go.git
synced 2025-02-19 18:28:18 +00:00
feat: add RequestCommunityInfoFromMailserverAsync (#2537)
This function doesn't wait for the response from mailservers, so the client has to rely on signals
This commit is contained in:
parent
aa8a84bf91
commit
ece535aaf7
@ -746,21 +746,21 @@ func (m *Messenger) BanUserFromCommunity(request *requests.BanUserFromCommunity)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RequestCommunityInfoFromMailserver installs filter for community and requests its details
|
// RequestCommunityInfoFromMailserver installs filter for community and requests its details
|
||||||
// from mailserver. When response received it will be passed through signals handler
|
// from mailserver. It waits until it has the community before returning it
|
||||||
func (m *Messenger) RequestCommunityInfoFromMailserver(communityID string) (*communities.Community, error) {
|
func (m *Messenger) RequestCommunityInfoFromMailserver(communityID string) (*communities.Community, error) {
|
||||||
return m.requestCommunityInfoFromMailserver(communityID)
|
return m.requestCommunityInfoFromMailserver(communityID, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RequestCommunityInfoFromMailserverSync installs filter for community and requests its details
|
// RequestCommunityInfoFromMailserverAsync installs filter for community and requests its details
|
||||||
// from mailserver. It will wait for a response and return it if any community is found
|
// from mailserver. When response received it will be passed through signals handler
|
||||||
func (m *Messenger) RequestCommunityInfoFromMailserverSync(communityID string) (*communities.Community, error) {
|
func (m *Messenger) RequestCommunityInfoFromMailserverAsync(communityID string) error {
|
||||||
return m.requestCommunityInfoFromMailserver(communityID)
|
_, err := m.requestCommunityInfoFromMailserver(communityID, false)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// RequestCommunityInfoFromMailserver installs filter for community and requests its details
|
// RequestCommunityInfoFromMailserver installs filter for community and requests its details
|
||||||
// from mailserver. When response received it will be passed through signals handler
|
// from mailserver. When response received it will be passed through signals handler
|
||||||
func (m *Messenger) requestCommunityInfoFromMailserver(communityID string) (*communities.Community, error) {
|
func (m *Messenger) requestCommunityInfoFromMailserver(communityID string, waitForResponse bool) (*communities.Community, error) {
|
||||||
|
|
||||||
if _, ok := m.requestedCommunities[communityID]; ok {
|
if _, ok := m.requestedCommunities[communityID]; ok {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
@ -792,12 +792,16 @@ func (m *Messenger) requestCommunityInfoFromMailserver(communityID string) (*com
|
|||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
filter,
|
filter,
|
||||||
true)
|
waitForResponse)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !waitForResponse {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
ctx, cancel := context.WithTimeout(ctx, 15*time.Second)
|
ctx, cancel := context.WithTimeout(ctx, 15*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
@ -848,6 +848,10 @@ func (api *PublicAPI) RequestCommunityInfoFromMailserver(communityID string) (*c
|
|||||||
return api.service.messenger.RequestCommunityInfoFromMailserver(communityID)
|
return api.service.messenger.RequestCommunityInfoFromMailserver(communityID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (api *PublicAPI) RequestCommunityInfoFromMailserverAsync(communityID string) error {
|
||||||
|
return api.service.messenger.RequestCommunityInfoFromMailserverAsync(communityID)
|
||||||
|
}
|
||||||
|
|
||||||
func (api *PublicAPI) UnreadActivityCenterNotificationsCount() (uint64, error) {
|
func (api *PublicAPI) UnreadActivityCenterNotificationsCount() (uint64, error) {
|
||||||
return api.service.messenger.UnreadActivityCenterNotificationsCount()
|
return api.service.messenger.UnreadActivityCenterNotificationsCount()
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ func (p *PublicAPI) CommunityInfo(communityID types.HexBytes) (json.RawMessage,
|
|||||||
return nil, ErrNotInitialized
|
return nil, ErrNotInitialized
|
||||||
}
|
}
|
||||||
|
|
||||||
community, err := p.service.messenger.RequestCommunityInfoFromMailserverSync(communityID.String())
|
community, err := p.service.messenger.RequestCommunityInfoFromMailserver(communityID.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user