Initial QSfera import
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package grpc
|
||||
|
||||
import (
|
||||
appproviderv1beta1 "github.com/cs3org/go-cs3apis/cs3/app/provider/v1beta1"
|
||||
"github.com/qsfera/server/pkg/tracing"
|
||||
svc "github.com/qsfera/server/services/collaboration/pkg/service/grpc/v0"
|
||||
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
// Server initializes a new grpc service ready to run
|
||||
// THIS SERVICE IS REGISTERED AGAINST REVA, NOT GO-MICRO
|
||||
func Server(opts ...Option) (*grpc.Server, func(), error) {
|
||||
options := newOptions(opts...)
|
||||
|
||||
grpcOpts := []grpc.ServerOption{
|
||||
grpc.StatsHandler(
|
||||
otelgrpc.NewServerHandler(
|
||||
otelgrpc.WithTracerProvider(options.TraceProvider),
|
||||
otelgrpc.WithPropagators(tracing.GetPropagator()),
|
||||
),
|
||||
),
|
||||
}
|
||||
grpcServer := grpc.NewServer(grpcOpts...)
|
||||
|
||||
handle, teardown, err := svc.NewHandler(
|
||||
svc.Config(options.Config),
|
||||
svc.Logger(options.Logger),
|
||||
svc.AppURLs(options.AppURLs),
|
||||
svc.Store(options.Store),
|
||||
)
|
||||
if err != nil {
|
||||
options.Logger.Error().
|
||||
Err(err).
|
||||
Msg("Error initializing collaboration service")
|
||||
return grpcServer, teardown, err
|
||||
}
|
||||
|
||||
// register the app provider interface / OpenInApp call
|
||||
appproviderv1beta1.RegisterProviderAPIServer(grpcServer, handle)
|
||||
|
||||
return grpcServer, teardown, nil
|
||||
}
|
||||
Reference in New Issue
Block a user