-
Notifications
You must be signed in to change notification settings - Fork 5
/
init.go
40 lines (32 loc) · 1.06 KB
/
init.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
package services
import (
"context"
"github.com/cloudknit-io/cloudknit/event-service/internal/admin"
"github.com/sirupsen/logrus"
"github.com/cloudknit-io/cloudknit/event-service/internal/status"
"github.com/cloudknit-io/cloudknit/event-service/internal/stream"
"github.com/cloudknit-io/cloudknit/event-service/internal/db"
"github.com/cloudknit-io/cloudknit/event-service/internal/event"
"github.com/cloudknit-io/cloudknit/event-service/internal/health"
"github.com/pkg/errors"
)
type Services struct {
AS admin.API
ES event.API
HS health.API
SS status.API
SSEBroker stream.API
}
func NewServices(l *logrus.Entry) (*Services, error) {
ctx := context.Background()
sqldb, err := db.NewDatabase(ctx)
if err != nil {
return nil, errors.Wrap(err, "error creating new database connection")
}
es := event.NewService(sqldb)
hs := health.NewService(sqldb)
ss := status.NewService(es, sqldb)
as := admin.NewService(sqldb)
sseBroker := stream.NewService(l)
return &Services{AS: as, ES: es, HS: hs, SS: ss, SSEBroker: sseBroker}, nil
}