/
librariansephirahservice.go
98 lines (91 loc) · 3.09 KB
/
librariansephirahservice.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package service
import (
"context"
"time"
"github.com/tuihub/librarian/app/sephirah/internal/biz/bizangela"
"github.com/tuihub/librarian/app/sephirah/internal/biz/bizbinah"
"github.com/tuihub/librarian/app/sephirah/internal/biz/bizchesed"
"github.com/tuihub/librarian/app/sephirah/internal/biz/bizgebura"
"github.com/tuihub/librarian/app/sephirah/internal/biz/biznetzach"
"github.com/tuihub/librarian/app/sephirah/internal/biz/biztiphereth"
"github.com/tuihub/librarian/app/sephirah/internal/biz/bizyesod"
"github.com/tuihub/librarian/app/sephirah/internal/model/converter"
"github.com/tuihub/librarian/app/sephirah/internal/supervisor"
"github.com/tuihub/librarian/internal/conf"
"github.com/tuihub/librarian/internal/lib/libapp"
"github.com/tuihub/librarian/internal/lib/libauth"
pb "github.com/tuihub/protos/pkg/librarian/sephirah/v1"
"google.golang.org/protobuf/types/known/timestamppb"
)
type LibrarianSephirahServiceService struct {
pb.UnimplementedLibrarianSephirahServiceServer
t *biztiphereth.Tiphereth
g *bizgebura.Gebura
b *bizbinah.Binah
y *bizyesod.Yesod
n *biznetzach.Netzach
c *bizchesed.Chesed
s *supervisor.Supervisor
app *libapp.Settings
auth *libauth.Auth
authFunc func(context.Context) (context.Context, error)
info *pb.ServerInstanceSummary
}
func NewLibrarianSephirahServiceService(
_ *bizangela.Angela,
t *biztiphereth.Tiphereth,
g *bizgebura.Gebura,
b *bizbinah.Binah,
y *bizyesod.Yesod,
n *biznetzach.Netzach,
c *bizchesed.Chesed,
s *supervisor.Supervisor,
app *libapp.Settings,
auth *libauth.Auth,
authFunc func(context.Context) (context.Context, error),
config *conf.SephirahServer,
) pb.LibrarianSephirahServiceServer {
t.CreateConfiguredAdmin()
if config == nil {
config = new(conf.SephirahServer)
}
if config.GetInfo() == nil {
config.Info = new(conf.SephirahServer_Info)
}
return &LibrarianSephirahServiceService{
UnimplementedLibrarianSephirahServiceServer: pb.UnimplementedLibrarianSephirahServiceServer{},
t: t,
g: g,
b: b,
y: y,
n: n,
c: c,
s: s,
app: app,
auth: auth,
authFunc: authFunc,
info: &pb.ServerInstanceSummary{
Name: config.GetInfo().GetName(),
Description: config.GetInfo().GetDescription(),
WebsiteUrl: config.GetInfo().GetWebsiteUrl(),
LogoUrl: config.GetInfo().GetLogoUrl(),
BackgroundUrl: config.GetInfo().GetBackgroundUrl(),
},
}
}
func (s *LibrarianSephirahServiceService) GetServerInformation(_ context.Context,
_ *pb.GetServerInformationRequest) (*pb.GetServerInformationResponse, error) {
return &pb.GetServerInformationResponse{
ServerBinarySummary: &pb.ServerBinarySummary{
SourceCodeAddress: s.app.SourceCodeAddress,
BuildVersion: s.app.Version,
BuildDate: s.app.BuildDate,
},
ProtocolSummary: &pb.ServerProtocolSummary{
Version: s.app.ProtoVersion,
},
CurrentTime: timestamppb.New(time.Now()),
FeatureSummary: converter.ToPBServerFeatureSummary(s.s.GetFeatureSummary()),
ServerInstanceSummary: s.info,
}, nil
}