44 lines
948 B
Go
44 lines
948 B
Go
package server
|
|
|
|
import (
|
|
"git.ctrlz.es/mgdelacroix/birthdaybot/model"
|
|
"git.ctrlz.es/mgdelacroix/birthdaybot/notification"
|
|
"github.com/charmbracelet/log"
|
|
)
|
|
|
|
type Option func(*Server) *Server
|
|
|
|
func WithConfig(config *model.Config) Option {
|
|
return func(server *Server) *Server {
|
|
server.config = config
|
|
return server
|
|
}
|
|
}
|
|
|
|
func WithLogger(logger *log.Logger) Option {
|
|
return func(server *Server) *Server {
|
|
server.Logger = logger
|
|
return server
|
|
}
|
|
}
|
|
|
|
func WithBirthdays(birthdays []*model.Birthday) Option {
|
|
return func(server *Server) *Server {
|
|
server.birthdays = birthdays
|
|
return server
|
|
}
|
|
}
|
|
|
|
func WithNotificationServices(notificationServices []notification.NotificationService) Option {
|
|
return func(server *Server) *Server {
|
|
server.notificationServices = notificationServices
|
|
return server
|
|
}
|
|
}
|
|
|
|
func WithWorkers(workers []Worker) Option {
|
|
return func(server *Server) *Server {
|
|
server.workers = workers
|
|
return server
|
|
}
|
|
}
|