summaryrefslogtreecommitdiff
path: root/internal/server/setup.go
blob: 17a17f3ba1221d93bfdb7b992d891e0a7bd644ea (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
package server

import (
	"database/sql"
	"fmt"
	"log/slog"
	"net"

	"github.com/ChausseBenjamin/rafta/internal/logging"
	m "github.com/ChausseBenjamin/rafta/internal/server/model"
	"github.com/ChausseBenjamin/rafta/internal/tagging"
	"google.golang.org/grpc"
)

func Setup(port int64, storage *sql.DB) (*grpc.Server, net.Listener, error) {
	lis, err := net.Listen(
		"tcp",
		fmt.Sprintf(":%d", port),
	)
	if err != nil {
		slog.Error("Unable to create listener", logging.ErrKey, err)
		return nil, nil, err
	}

	// FIXME: Implement Auth interceptor

	grpcServer := grpc.NewServer(
		grpc.ChainUnaryInterceptor(
			tagging.UnaryInterceptor,
		),
	)
	raftaService := &Service{store: storage}
	m.RegisterRaftaServer(grpcServer, raftaService)

	return grpcServer, lis, nil
}