Skip to content

Commit 0eb6bbf

Browse files
committed
chore: integrate linkpreview service
1 parent a4384f9 commit 0eb6bbf

File tree

7 files changed

+71
-15
lines changed

7 files changed

+71
-15
lines changed

api/geth_backend.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2272,6 +2272,7 @@ func (b *GethStatusBackend) initProtocol() error {
22722272
b.statusNode.CommunityTokensService().Init(messenger)
22732273
b.statusNode.SharedUrlsService().SetDataProvider(adapters.NewSharedUrlsMessengerAdapter(messenger))
22742274
b.statusNode.NewsFeedService().SetActivityCenter(adapters.NewNewsFeedActivityCenterAdapter(messenger))
2275+
b.statusNode.LinkPreviewService().SetStatusDataProvider(adapters.NewLinkPreviewMessengerAdapter(messenger))
22752276

22762277
return nil
22772278
}

node/get_status_node.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import (
4242
"github.com/status-im/status-go/services/ens"
4343
"github.com/status-im/status-go/services/eth"
4444
"github.com/status-im/status-go/services/gif"
45+
"github.com/status-im/status-go/services/linkpreview"
4546
localnotifications "github.com/status-im/status-go/services/local-notifications"
4647
"github.com/status-im/status-go/services/newsfeed"
4748
"github.com/status-im/status-go/services/permissions"
@@ -127,6 +128,7 @@ type StatusNode struct {
127128
ethSrvc *eth.Service
128129
newsfeedSrvc *newsfeed.Service
129130
sharedUrlsSrvc *sharedurls.Service
131+
linkPreviewSrvc *linkpreview.Service
130132

131133
walletFeed event.Feed
132134
accountsPublisher *pubsub.Publisher

node/status_node_services.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/status-im/status-go/pkg/pubsub"
1414
"github.com/status-im/status-go/server"
1515
"github.com/status-im/status-go/services/eth"
16+
"github.com/status-im/status-go/services/linkpreview"
1617
"github.com/status-im/status-go/services/newsfeed"
1718
"github.com/status-im/status-go/services/sharedurls"
1819

@@ -340,6 +341,18 @@ func (b *StatusNode) SharedUrlsService() *sharedurls.Service {
340341
return b.sharedUrlsSrvc
341342
}
342343

344+
func (b *StatusNode) linkPreviewService(accDB *accounts.Database) *linkpreview.Service {
345+
if b.linkPreviewSrvc == nil {
346+
settingsProvider := adapters.NewLinkPreviewSettingsAdapter(accDB)
347+
b.linkPreviewSrvc = linkpreview.NewService(b.logger.Named("linkpreview"), settingsProvider, nil)
348+
}
349+
return b.linkPreviewSrvc
350+
}
351+
352+
func (b *StatusNode) LinkPreviewService() *linkpreview.Service {
353+
return b.linkPreviewSrvc
354+
}
355+
343356
func (b *StatusNode) localNotificationsService(network uint64) (*localnotifications.Service, error) {
344357
var err error
345358
if b.localNotificationsSrvc == nil {

services/linkpreview/persistence.go

Lines changed: 0 additions & 11 deletions
This file was deleted.

services/linkpreview/service.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import (
1010

1111
type Service struct {
1212
logger *zap.Logger
13-
storage Persistence
13+
storage Settings
1414
statusDataProvider unfurlers.StatusDataProvider
1515
}
1616

17-
func NewService(logger *zap.Logger, settingsProvider Persistence, statusDataProvider unfurlers.StatusDataProvider) *Service {
17+
func NewService(logger *zap.Logger, settingsProvider Settings, statusDataProvider unfurlers.StatusDataProvider) *Service {
1818
return &Service{
1919
logger: logger,
2020
storage: settingsProvider,
@@ -42,6 +42,10 @@ func (s *Service) APIs() []rpc.API {
4242
}
4343
}
4444

45+
func (s *Service) SetStatusDataProvider(provider unfurlers.StatusDataProvider) {
46+
s.statusDataProvider = provider
47+
}
48+
4549
func (s *Service) GetTextURLsToUnfurl(text string) *URLsUnfurlPlan {
4650
mode, err := s.storage.GetUnfurlingMode()
4751
if err != nil {

services/linkpreview/settings.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package linkpreview
2+
3+
import (
4+
"github.com/status-im/status-go/multiaccounts/settings"
5+
)
6+
7+
//go:generate go tool mockgen -package=mock_settings -source=settings.go -destination=./mock/settings.go
8+
9+
//
10+
// Option 1
11+
//
12+
13+
type Settings interface {
14+
GetUnfurlingMode() (settings.URLUnfurlingModeType, error)
15+
}
16+
17+
////
18+
//// Option 2
19+
////
20+
//
21+
//type Settings1 interface {
22+
// GetUnfurlingMode() (settings.URLUnfurlingModeType, error)
23+
// SaveUnfurlingMode(modeType settings.URLUnfurlingModeType) error
24+
//}
25+
//
26+
////
27+
//// Option 3
28+
////
29+
//
30+
//type Settings2 interface {
31+
// GetUnfurlingMode() <-chan settings.URLUnfurlingModeType
32+
//}
33+
//
34+
////
35+
//// Option 4
36+
////
37+
//
38+
//type Service2 struct {
39+
//
40+
//}
41+
//
42+
//func (s *Service2) SetUnfurlingMode(mode settings.URLUnfurlingModeType) {
43+
//
44+
//}

services/linkpreview/unfurlers/unfurler_status.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
//go:generate go tool mockgen -package=mock_unfurlers -source=unfurler_status.go -destination=./mock/unfurler_status.go
1919

2020
type StatusDataProvider interface {
21-
GetContactByID(pubKey string) *contacts.Contact
21+
GetContactByID(pubKey string) (*contacts.Contact, error)
2222
FetchContact(contactID string, waitForResponse bool) (*contacts.Contact, error)
2323
FetchCommunity(communityID string, shard *messagingtypes.Shard) (*communities.Community, error)
2424
}
@@ -66,7 +66,10 @@ func (u *StatusUnfurler) buildContactData(publicKey string) (*common.StatusConta
6666
return nil, err
6767
}
6868

69-
contact := u.provider.GetContactByID(contactID)
69+
contact, err := u.provider.GetContactByID(contactID)
70+
if err != nil {
71+
return nil, err
72+
}
7073

7174
// If no contact found locally, fetch it from waku
7275
if contact == nil {

0 commit comments

Comments
 (0)