birthdaybot/server/options.go

45 lines
948 B
Go
Raw Permalink Normal View History

2023-07-04 11:48:16 +01:00
package server
import (
"git.ctrlz.es/mgdelacroix/birthdaybot/model"
"git.ctrlz.es/mgdelacroix/birthdaybot/notification"
2023-07-04 11:48:16 +01:00
"github.com/charmbracelet/log"
)
type Option func(*Server) *Server
func WithConfig(config *model.Config) Option {
return func(server *Server) *Server {
server.Config = config
2023-07-04 11:48:16 +01:00
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
}
}