@@ -124,6 +124,7 @@ func NewContainer(projectID string, version string) (container *Container) {
124124 container .RegisterEventRoutes ()
125125
126126 container .RegisterNotificationListeners ()
127+ container .RegisterEmailNotificationListeners ()
127128
128129 container .RegisterBillingRoutes ()
129130 container .RegisterBillingListeners ()
@@ -853,6 +854,16 @@ func (container *Container) UserEmailFactory() (factory emails.UserEmailFactory)
853854 })
854855}
855856
857+ // NotificationEmailFactory creates a new instance of emails.NotificationEmailFactory
858+ func (container * Container ) NotificationEmailFactory () (factory emails.NotificationEmailFactory ) {
859+ container .logger .Debug ("creating emails.UserEmailFactory" )
860+ return emails .NewHermesNotificationEmailFactory (& emails.HermesGeneratorConfig {
861+ AppURL : os .Getenv ("APP_URL" ),
862+ AppName : os .Getenv ("APP_NAME" ),
863+ AppLogoURL : os .Getenv ("APP_LOGO_URL" ),
864+ })
865+ }
866+
856867// MessageThreadService creates a new instance of services.MessageService
857868func (container * Container ) MessageThreadService () (service * services.MessageThreadService ) {
858869 container .logger .Debug (fmt .Sprintf ("creating %T" , service ))
@@ -863,6 +874,19 @@ func (container *Container) MessageThreadService() (service *services.MessageThr
863874 )
864875}
865876
877+ // EmailNotificationService creates a new instance of services.EmailNotificationService
878+ func (container * Container ) EmailNotificationService () (service * services.EmailNotificationService ) {
879+ container .logger .Debug (fmt .Sprintf ("creating %T" , service ))
880+ return services .NewEmailNotificationService (
881+ container .Logger (),
882+ container .Tracer (),
883+ container .UserRepository (),
884+ container .NotificationEmailFactory (),
885+ container .Mailer (),
886+ container .Cache (),
887+ )
888+ }
889+
866890// MessageHandler creates a new instance of handlers.MessageHandler
867891func (container * Container ) MessageHandler () (handler * handlers.MessageHandler ) {
868892 container .logger .Debug (fmt .Sprintf ("creating %T" , handler ))
@@ -1047,6 +1071,20 @@ func (container *Container) RegisterMessageThreadListeners() {
10471071 }
10481072}
10491073
1074+ // RegisterEmailNotificationListeners registers event listeners for listeners.EmailNotificationListener
1075+ func (container * Container ) RegisterEmailNotificationListeners () {
1076+ container .logger .Debug (fmt .Sprintf ("registering listners for %T" , listeners.EmailNotificationListener {}))
1077+ _ , routes := listeners .NewEmailNotificationListener (
1078+ container .Logger (),
1079+ container .Tracer (),
1080+ container .EmailNotificationService (),
1081+ )
1082+
1083+ for event , handler := range routes {
1084+ container .EventDispatcher ().Subscribe (event , handler )
1085+ }
1086+ }
1087+
10501088// RegisterNotificationListeners registers event listeners for listeners.PhoneNotificationListener
10511089func (container * Container ) RegisterNotificationListeners () {
10521090 container .logger .Debug (fmt .Sprintf ("registering listners for %T" , listeners.PhoneNotificationListener {}))
0 commit comments