July 2019
Intermediate to advanced
502 pages
14h
English
As you may recall, we defined a LinkManagerEvents interface in our object model:
type LinkManagerEvents interface {
OnLinkAdded(username string, link *Link)
OnLinkUpdated(username string, link *Link)
OnLinkDeleted(username string, url string)
}
The LinkManager package receives this event link in its NewLinkManager() method:
func NewLinkManager(linkStore LinkStore,
socialGraphManager om.SocialGraphManager,
eventSink om.LinkManagerEvents,
maxLinksPerUser int64) (om.LinkManager, error) {
if linkStore == nil {
return nil, errors.New("link store")
}
if eventSink != nil && socialGraphManager == nil { msg := "social graph manager can't be nil if event sink is not nil" return nil, errors.New(msg) } return &LinkManager{ ...