blob: 0e8ecb7789b158e1a77d8cb2efbf28585c0832b0 (
plain)
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
|
package pb
import (
"context"
"errors"
"log/slog"
"github.com/ChausseBenjamin/rafta/internal/db"
"github.com/ChausseBenjamin/rafta/internal/intercept"
m "github.com/ChausseBenjamin/rafta/pkg/model"
"google.golang.org/grpc"
)
var ErrOutOfBoundsPort = errors.New("given port is out of bounds (1024-65535)")
// Implements ComsServer interface
type UserServer struct {
db *db.Store
m.UnimplementedRaftaUserServer
}
type AdminServer struct {
db *db.Store
m.UnimplementedRaftaAdminServer
}
func NewUserServer(store *db.Store) *UserServer {
return &UserServer{db: store}
}
func NewAdminServer(store *db.Store) *AdminServer {
return &AdminServer{db: store}
}
// Setup creates a new gRPC with both services
// and starts listening on the given port
func Setup(ctx context.Context, store *db.Store) (*grpc.Server, error) {
slog.DebugContext(ctx, "Configuring gRPC server")
server := grpc.NewServer(grpc.ChainUnaryInterceptor(
intercept.Tagging,
))
m.RegisterRaftaUserServer(server, NewUserServer(store))
m.RegisterRaftaAdminServer(server, NewAdminServer(store))
return server, nil
}
|