-
Notifications
You must be signed in to change notification settings - Fork 2
/
server.go
54 lines (45 loc) · 1.08 KB
/
server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package server
import (
"io/fs"
"os"
"strconv"
"github.com/open-function-computers-llc/secret-share/mail"
"github.com/open-function-computers-llc/secret-share/secret"
"github.com/sirupsen/logrus"
)
type Server struct {
logger *logrus.Logger
filesystem fs.FS
port string
recipients map[string]string
secrets map[string]secret.StorableSecret
mailer *mail.Mailer
}
func New(filesystem fs.FS) (*Server, error) {
s := Server{}
s.secrets = map[string]secret.StorableSecret{}
s.filesystem = filesystem
// initiate logging
s.logger = logrus.New()
// initiate mailer
host := os.Getenv("SMTP_HOST")
user := os.Getenv("SMTP_USERNAME")
pass := os.Getenv("SMTP_PASSWORD")
port := os.Getenv("SMTP_PORT")
porti, err := strconv.Atoi(port)
if err != nil {
return &s, err
}
m, err := mail.New(s.logger, os.Getenv("MAIL_OUTPUT"), host, porti, user, pass)
if err != nil {
return &s, err
}
s.mailer = m
s.setUpRecipients()
s.bindRoutes()
s.port = os.Getenv("PORT")
return &s, nil
}
func (s *Server) log(messages ...interface{}) {
s.logger.Info(messages...)
}