add email sender to user processor

This commit is contained in:
tsmethurst 2021-10-17 15:25:08 +02:00
commit 55b643cc02
2 changed files with 16 additions and 8 deletions

View file

@ -23,6 +23,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/email"
"github.com/superseriousbusiness/gotosocial/internal/gtserror"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
)
@ -32,17 +33,20 @@ type Processor interface {
// ChangePassword changes the specified user's password from old => new,
// or returns an error if the new password is too weak, or the old password is incorrect.
ChangePassword(ctx context.Context, user *gtsmodel.User, oldPassword string, newPassword string) gtserror.WithCode
SendConfirmEmail(ctx context.Context, user *gtsmodel.User, username string) error
}
type processor struct {
config *config.Config
db db.DB
config *config.Config
emailSender email.Sender
db db.DB
}
// New returns a new user processor
func New(db db.DB, config *config.Config) Processor {
func New(db db.DB, emailSender email.Sender, config *config.Config) Processor {
return &processor{
config: config,
db: db,
config: config,
emailSender: emailSender,
db: db,
}
}

View file

@ -22,6 +22,7 @@ import (
"github.com/stretchr/testify/suite"
"github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/email"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/processing/user"
"github.com/superseriousbusiness/gotosocial/testrig"
@ -29,8 +30,9 @@ import (
type UserStandardTestSuite struct {
suite.Suite
config *config.Config
db db.DB
config *config.Config
emailSender email.Sender
db db.DB
testUsers map[string]*gtsmodel.User
@ -41,8 +43,10 @@ func (suite *UserStandardTestSuite) SetupTest() {
testrig.InitTestLog()
suite.config = testrig.NewTestConfig()
suite.db = testrig.NewTestDB()
suite.emailSender = testrig.NewEmailSender("../../../web/template/")
suite.testUsers = testrig.NewTestUsers()
suite.user = user.New(suite.db, suite.config)
suite.user = user.New(suite.db, suite.emailSender, suite.config)
testrig.StandardDBSetup(suite.db, nil)
}