Documentation ¶
Index ¶
- Constants
- type ServicePubSub
- type ServicePubSubMessaging
- func (ps ServicePubSubMessaging) AddEngagementPubsubNameSpace(topic string) string
- func (ps ServicePubSubMessaging) AddPubSubNamespace(topicName string) string
- func (ps *ServicePubSubMessaging) EDIMemberCoverLinking(ctx context.Context, data dto.LinkCoverPubSubMessage) error
- func (ps ServicePubSubMessaging) EnsureSubscriptionsExist(ctx context.Context) error
- func (ps ServicePubSubMessaging) EnsureTopicsExist(ctx context.Context, topicIDs []string) error
- func (ps *ServicePubSubMessaging) NotifyCoverLinking(ctx context.Context, data dto.LinkCoverPubSubMessage) error
- func (ps *ServicePubSubMessaging) NotifyCreateContact(ctx context.Context, contact domain.CRMContact) error
- func (ps *ServicePubSubMessaging) NotifyCreateCustomer(ctx context.Context, data dto.CustomerPubSubMessage) error
- func (ps *ServicePubSubMessaging) NotifyCreateSupplier(ctx context.Context, data dto.SupplierPubSubMessage) error
- func (ps *ServicePubSubMessaging) NotifyUpdateContact(ctx context.Context, contact domain.CRMContact) error
- func (ps ServicePubSubMessaging) PublishToPubsub(ctx context.Context, topicID string, payload []byte) error
- func (ps ServicePubSubMessaging) ReceivePubSubPushMessages(w http.ResponseWriter, r *http.Request)
- func (ps ServicePubSubMessaging) SubscriptionIDs() map[string]string
- func (ps ServicePubSubMessaging) TopicIDs() []string
Constants ¶
const ( // ServiceName .. ServiceName = "onboarding" // TopicVersion ... TopicVersion = "v1" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ServicePubSub ¶
type ServicePubSub interface { // Ask the notification service about the topics that it knows about TopicIDs() []string AddPubSubNamespace(topicName string) string PublishToPubsub( ctx context.Context, topicID string, payload []byte, ) error EnsureTopicsExist( ctx context.Context, topicIDs []string, ) error EnsureSubscriptionsExist( ctx context.Context, ) error SubscriptionIDs() map[string]string ReceivePubSubPushMessages( w http.ResponseWriter, r *http.Request, ) AddEngagementPubsubNameSpace(topic string) string // Publishers EDIMemberCoverLinking(ctx context.Context, data dto.LinkCoverPubSubMessage) error NotifyCreateContact(ctx context.Context, contact domain.CRMContact) error NotifyCoverLinking(ctx context.Context, data dto.LinkCoverPubSubMessage) error NotifyUpdateContact( ctx context.Context, contact domain.CRMContact, ) error NotifyCreateCustomer( ctx context.Context, data dto.CustomerPubSubMessage, ) error NotifyCreateSupplier( ctx context.Context, data dto.SupplierPubSubMessage, ) error }
ServicePubSub represents logic required to communicate with pubsub
type ServicePubSubMessaging ¶
type ServicePubSubMessaging struct {
// contains filtered or unexported fields
}
ServicePubSubMessaging sends "real" (production) notifications
func NewServicePubSubMessaging ¶
func NewServicePubSubMessaging( client *pubsub.Client, ext extension.BaseExtension, erp erp.AccountingUsecase, crm crm.ServiceCrm, edi edi.ServiceEdi, repo repository.OnboardingRepository, ) (*ServicePubSubMessaging, error)
NewServicePubSubMessaging ...
func (ServicePubSubMessaging) AddEngagementPubsubNameSpace ¶
func (ps ServicePubSubMessaging) AddEngagementPubsubNameSpace( topic string, ) string
AddEngagementPubsubNameSpace creates a namespaced topic that resembles the one in engagement service, which is prepended with the word "engagement". This solves the problem where namespaced topics from "onboarding" are different from the ones in engagement. This fix allows for uniformity of topic names between the engagement and onboarding services.
func (ServicePubSubMessaging) AddPubSubNamespace ¶
func (ps ServicePubSubMessaging) AddPubSubNamespace(topicName string) string
AddPubSubNamespace creates a namespaced topic name
func (*ServicePubSubMessaging) EDIMemberCoverLinking ¶ added in v0.0.23
func (ps *ServicePubSubMessaging) EDIMemberCoverLinking( ctx context.Context, data dto.LinkCoverPubSubMessage, ) error
EDIMemberCoverLinking publishes to the edi.covers.link topic. The reason for this is to Auto-link the Sladers who get text messages from EDI. If a slader is converted and creates an account on Be.Well app, we should automatically append a cover to their profile.
func (ServicePubSubMessaging) EnsureSubscriptionsExist ¶
func (ps ServicePubSubMessaging) EnsureSubscriptionsExist( ctx context.Context, ) error
EnsureSubscriptionsExist ensures that the subscriptions named in the supplied topic:subscription map exist. If any does not exist, it is created.
func (ServicePubSubMessaging) EnsureTopicsExist ¶
func (ps ServicePubSubMessaging) EnsureTopicsExist( ctx context.Context, topicIDs []string, ) error
EnsureTopicsExist creates the topic(s) in the suppplied list if they do not already exist.
func (*ServicePubSubMessaging) NotifyCoverLinking ¶
func (ps *ServicePubSubMessaging) NotifyCoverLinking( ctx context.Context, data dto.LinkCoverPubSubMessage, ) error
NotifyCoverLinking pushes to covers.link topic
func (*ServicePubSubMessaging) NotifyCreateContact ¶
func (ps *ServicePubSubMessaging) NotifyCreateContact( ctx context.Context, contact domain.CRMContact, ) error
NotifyCreateContact publishes to crm.contact.create topic
func (*ServicePubSubMessaging) NotifyCreateCustomer ¶
func (ps *ServicePubSubMessaging) NotifyCreateCustomer( ctx context.Context, data dto.CustomerPubSubMessage, ) error
NotifyCreateCustomer publishes to customers.create topic
func (*ServicePubSubMessaging) NotifyCreateSupplier ¶
func (ps *ServicePubSubMessaging) NotifyCreateSupplier( ctx context.Context, data dto.SupplierPubSubMessage, ) error
NotifyCreateSupplier publishes to suppliers.create topic
func (*ServicePubSubMessaging) NotifyUpdateContact ¶
func (ps *ServicePubSubMessaging) NotifyUpdateContact( ctx context.Context, contact domain.CRMContact, ) error
NotifyUpdateContact publishes to crm.contact.update topic
func (ServicePubSubMessaging) PublishToPubsub ¶
func (ps ServicePubSubMessaging) PublishToPubsub( ctx context.Context, topicID string, payload []byte, ) error
PublishToPubsub sends a message to a specifeid Topic
func (ServicePubSubMessaging) ReceivePubSubPushMessages ¶
func (ps ServicePubSubMessaging) ReceivePubSubPushMessages( w http.ResponseWriter, r *http.Request, )
ReceivePubSubPushMessages receives and processes a Pub/Sub push message.
func (ServicePubSubMessaging) SubscriptionIDs ¶
func (ps ServicePubSubMessaging) SubscriptionIDs() map[string]string
SubscriptionIDs returns a map of topic IDs to subscription IDs
func (ServicePubSubMessaging) TopicIDs ¶
func (ps ServicePubSubMessaging) TopicIDs() []string
TopicIDs returns the known (registered) topic IDs