Skip to content
Snippets Groups Projects
Commit e45a3db8 authored by Alex Petraky's avatar Alex Petraky :basketball_player_tone1: Committed by Pavel Antonov
Browse files

Возврат GRPC-ошибки в сервисах

parent a1afa563
No related branches found
No related tags found
No related merge requests found
Showing
with 245 additions and 92 deletions
......@@ -4,12 +4,9 @@ package transport
import (
"context"
"errors"
images "git.perx.ru/perxis/perxis-go/images"
files "git.perx.ru/perxis/perxis-go/pkg/files"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
func (set EndpointsSet) Get(arg0 context.Context, arg1 *files.File, arg2 *images.GetOptions) (res0 *files.File, res1 error) {
......@@ -19,9 +16,6 @@ func (set EndpointsSet) Get(arg0 context.Context, arg1 *files.File, arg2 *images
}
response, res1 := set.GetEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*GetResponse).Result, res1
......
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transportgrpc
import (
transport "git.perx.ru/perxis/perxis-go/images/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
grpckit "github.com/go-kit/kit/transport/grpc"
grpc "google.golang.org/grpc"
)
func NewClient(conn *grpc.ClientConn, opts ...grpckit.ClientOption) transport.EndpointsSet {
c := NewGRPCClient(conn, "", opts...)
return transport.EndpointsSet{
GetEndpoint: grpcerr.ClientMiddleware(c.GetEndpoint),
}
}
package transportgrpc
import (
"git.perx.ru/perxis/perxis-go/images"
"git.perx.ru/perxis/perxis-go/images/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
pb "git.perx.ru/perxis/perxis-go/proto/images"
grpckit "github.com/go-kit/kit/transport/grpc"
)
func NewServer(svc images.Images, opts ...grpckit.ServerOption) pb.ImagesServer {
eps := transport.Endpoints(svc)
eps = transport.EndpointsSet{
GetEndpoint: grpcerr.ServerMiddleware(eps.GetEndpoint),
}
return NewGRPCServer(&eps, opts...)
}
......@@ -34,10 +34,10 @@ func NewClient(conn *grpc.ClientConn, opts ...Option) *Account {
c.logger = zap.NewNop()
}
client.Members = membersTransport.NewGRPCClient(conn, "", c.clientOptions...)
client.Organizations = organizationsTransport.NewGRPCClient(conn, "", c.clientOptions...)
client.Users = usersTransport.NewGRPCClient(conn, "", c.clientOptions...)
client.MembersObserver = membersObserverTransport.NewGRPCClient(conn, "", c.clientOptions...)
client.Members = membersTransport.NewClient(conn, c.clientOptions...)
client.Organizations = organizationsTransport.NewClient(conn, c.clientOptions...)
client.Users = usersTransport.NewClient(conn, c.clientOptions...)
client.MembersObserver = membersObserverTransport.NewClient(conn, c.clientOptions...)
if !c.noCache {
client = WithCaching(client, DefaultCacheSize, DefaultCacheTTL)
......
......@@ -4,20 +4,14 @@ package transport
import (
"context"
"errors"
version "git.perx.ru/perxis/perxis-go/pkg/version"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
func (set EndpointsSet) Get(arg0 context.Context) (res0 *version.Version, res1 error) {
request := GetRequest{}
response, res1 := set.GetEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*GetResponse).Version, res1
......
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transportgrpc
import (
transport "git.perx.ru/perxis/perxis-go/pkg/account/versions/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
grpckit "github.com/go-kit/kit/transport/grpc"
grpc "google.golang.org/grpc"
)
func NewClient(conn *grpc.ClientConn, opts ...grpckit.ClientOption) transport.EndpointsSet {
c := NewGRPCClient(conn, "", opts...)
return transport.EndpointsSet{
GetEndpoint: grpcerr.ClientMiddleware(c.GetEndpoint),
}
}
package transportgrpc
import (
"git.perx.ru/perxis/perxis-go/pkg/account/versions/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
versions "git.perx.ru/perxis/perxis-go/pkg/version"
pb "git.perx.ru/perxis/perxis-go/proto/versions/account"
grpckit "github.com/go-kit/kit/transport/grpc"
)
func NewServer(svc versions.Versions, opts ...grpckit.ServerOption) pb.VersionsServer {
eps := transport.Endpoints(svc)
eps = transport.EndpointsSet{
GetEndpoint: grpcerr.ServerMiddleware(eps.GetEndpoint),
}
return NewGRPCServer(&eps, opts...)
}
......@@ -4,19 +4,13 @@ package transport
import (
"context"
"errors"
clients "git.perx.ru/perxis/perxis-go/pkg/clients"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
func (set EndpointsSet) Create(arg0 context.Context, arg1 *clients.Client) (res0 *clients.Client, res1 error) {
request := CreateRequest{Client: arg1}
response, res1 := set.CreateEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*CreateResponse).Created, res1
......@@ -29,9 +23,6 @@ func (set EndpointsSet) Get(arg0 context.Context, arg1 string, arg2 string) (res
}
response, res1 := set.GetEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*GetResponse).Client, res1
......@@ -44,9 +35,6 @@ func (set EndpointsSet) GetBy(arg0 context.Context, arg1 string, arg2 *clients.G
}
response, res1 := set.GetByEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*GetByResponse).Client, res1
......@@ -56,9 +44,6 @@ func (set EndpointsSet) List(arg0 context.Context, arg1 string) (res0 []*clients
request := ListRequest{SpaceId: arg1}
response, res1 := set.ListEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*ListResponse).Clients, res1
......@@ -68,9 +53,6 @@ func (set EndpointsSet) Update(arg0 context.Context, arg1 *clients.Client) (res0
request := UpdateRequest{Client: arg1}
_, res0 = set.UpdateEndpoint(arg0, &request)
if res0 != nil {
if e, ok := status.FromError(res0); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res0 = errors.New(e.Message())
}
return
}
return res0
......@@ -83,9 +65,6 @@ func (set EndpointsSet) Delete(arg0 context.Context, arg1 string, arg2 string) (
}
_, res0 = set.DeleteEndpoint(arg0, &request)
if res0 != nil {
if e, ok := status.FromError(res0); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res0 = errors.New(e.Message())
}
return
}
return res0
......@@ -99,9 +78,6 @@ func (set EndpointsSet) Enable(arg0 context.Context, arg1 string, arg2 string, a
}
_, res0 = set.EnableEndpoint(arg0, &request)
if res0 != nil {
if e, ok := status.FromError(res0); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res0 = errors.New(e.Message())
}
return
}
return res0
......
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transportgrpc
import (
transport "git.perx.ru/perxis/perxis-go/pkg/clients/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
grpckit "github.com/go-kit/kit/transport/grpc"
grpc "google.golang.org/grpc"
)
func NewClient(conn *grpc.ClientConn, opts ...grpckit.ClientOption) transport.EndpointsSet {
c := NewGRPCClient(conn, "", opts...)
return transport.EndpointsSet{
CreateEndpoint: grpcerr.ClientMiddleware(c.CreateEndpoint),
GetEndpoint: grpcerr.ClientMiddleware(c.GetEndpoint),
GetByEndpoint: grpcerr.ClientMiddleware(c.GetByEndpoint),
ListEndpoint: grpcerr.ClientMiddleware(c.ListEndpoint),
UpdateEndpoint: grpcerr.ClientMiddleware(c.UpdateEndpoint),
DeleteEndpoint: grpcerr.ClientMiddleware(c.DeleteEndpoint),
EnableEndpoint: grpcerr.ClientMiddleware(c.EnableEndpoint),
}
}
package transportgrpc
import (
"git.perx.ru/perxis/perxis-go/pkg/clients"
"git.perx.ru/perxis/perxis-go/pkg/clients/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
pb "git.perx.ru/perxis/perxis-go/proto/clients"
grpckit "github.com/go-kit/kit/transport/grpc"
)
func NewServer(svc clients.Clients, opts ...grpckit.ServerOption) pb.ClientsServer {
eps := transport.Endpoints(svc)
eps = transport.EndpointsSet{
CreateEndpoint: grpcerr.ServerMiddleware(eps.CreateEndpoint),
GetEndpoint: grpcerr.ServerMiddleware(eps.GetEndpoint),
GetByEndpoint: grpcerr.ServerMiddleware(eps.GetByEndpoint),
ListEndpoint: grpcerr.ServerMiddleware(eps.ListEndpoint),
UpdateEndpoint: grpcerr.ServerMiddleware(eps.UpdateEndpoint),
DeleteEndpoint: grpcerr.ServerMiddleware(eps.DeleteEndpoint),
EnableEndpoint: grpcerr.ServerMiddleware(eps.EnableEndpoint),
}
return NewGRPCServer(&eps, opts...)
}
......@@ -4,11 +4,8 @@ package transport
import (
"context"
"errors"
collaborators "git.perx.ru/perxis/perxis-go/pkg/collaborators"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
func (set EndpointsSet) Set(arg0 context.Context, arg1 string, arg2 string, arg3 string) (res0 error) {
......@@ -19,9 +16,6 @@ func (set EndpointsSet) Set(arg0 context.Context, arg1 string, arg2 string, arg3
}
_, res0 = set.SetEndpoint(arg0, &request)
if res0 != nil {
if e, ok := status.FromError(res0); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res0 = errors.New(e.Message())
}
return
}
return res0
......@@ -34,9 +28,6 @@ func (set EndpointsSet) Get(arg0 context.Context, arg1 string, arg2 string) (res
}
response, res1 := set.GetEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*GetResponse).Role, res1
......@@ -49,9 +40,6 @@ func (set EndpointsSet) Remove(arg0 context.Context, arg1 string, arg2 string) (
}
_, res0 = set.RemoveEndpoint(arg0, &request)
if res0 != nil {
if e, ok := status.FromError(res0); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res0 = errors.New(e.Message())
}
return
}
return res0
......@@ -61,9 +49,6 @@ func (set EndpointsSet) ListCollaborators(arg0 context.Context, arg1 string) (re
request := ListCollaboratorsRequest{SpaceId: arg1}
response, res1 := set.ListCollaboratorsEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*ListCollaboratorsResponse).Collaborators, res1
......@@ -73,9 +58,6 @@ func (set EndpointsSet) ListSpaces(arg0 context.Context, arg1 string) (res0 []*c
request := ListSpacesRequest{Subject: arg1}
response, res1 := set.ListSpacesEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*ListSpacesResponse).Spaces, res1
......
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transportgrpc
import (
transport "git.perx.ru/perxis/perxis-go/pkg/collaborators/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
grpckit "github.com/go-kit/kit/transport/grpc"
grpc "google.golang.org/grpc"
)
func NewClient(conn *grpc.ClientConn, opts ...grpckit.ClientOption) transport.EndpointsSet {
c := NewGRPCClient(conn, "", opts...)
return transport.EndpointsSet{
GetEndpoint: grpcerr.ClientMiddleware(c.GetEndpoint),
ListSpacesEndpoint: grpcerr.ClientMiddleware(c.ListSpacesEndpoint),
ListCollaboratorsEndpoint: grpcerr.ClientMiddleware(c.ListCollaboratorsEndpoint),
RemoveEndpoint: grpcerr.ClientMiddleware(c.RemoveEndpoint),
SetEndpoint: grpcerr.ClientMiddleware(c.SetEndpoint),
}
}
package transportgrpc
import (
"git.perx.ru/perxis/perxis-go/pkg/collaborators"
"git.perx.ru/perxis/perxis-go/pkg/collaborators/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
pb "git.perx.ru/perxis/perxis-go/proto/collaborators"
grpckit "github.com/go-kit/kit/transport/grpc"
)
func NewServer(svc collaborators.Collaborators, opts ...grpckit.ServerOption) pb.CollaboratorsServer {
eps := transport.Endpoints(svc)
eps = transport.EndpointsSet{
GetEndpoint: grpcerr.ServerMiddleware(eps.GetEndpoint),
ListSpacesEndpoint: grpcerr.ServerMiddleware(eps.ListSpacesEndpoint),
ListCollaboratorsEndpoint: grpcerr.ServerMiddleware(eps.ListCollaboratorsEndpoint),
RemoveEndpoint: grpcerr.ServerMiddleware(eps.RemoveEndpoint),
SetEndpoint: grpcerr.ServerMiddleware(eps.SetEndpoint),
}
return NewGRPCServer(&eps, opts...)
}
......@@ -4,21 +4,15 @@ package transport
import (
"context"
"errors"
collections "git.perx.ru/perxis/perxis-go/pkg/collections"
schema "git.perx.ru/perxis/perxis-go/pkg/schema"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
func (set EndpointsSet) Create(arg0 context.Context, arg1 *collections.Collection) (res0 *collections.Collection, res1 error) {
request := CreateRequest{Collection: arg1}
response, res1 := set.CreateEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*CreateResponse).Created, res1
......@@ -33,9 +27,6 @@ func (set EndpointsSet) Get(arg0 context.Context, arg1 string, arg2 string, arg3
}
response, res1 := set.GetEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*GetResponse).Collection, res1
......@@ -49,9 +40,6 @@ func (set EndpointsSet) List(arg0 context.Context, arg1 string, arg2 string, arg
}
response, res1 := set.ListEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*ListResponse).Collections, res1
......@@ -61,9 +49,6 @@ func (set EndpointsSet) Update(arg0 context.Context, arg1 *collections.Collectio
request := UpdateRequest{Coll: arg1}
_, res0 = set.UpdateEndpoint(arg0, &request)
if res0 != nil {
if e, ok := status.FromError(res0); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res0 = errors.New(e.Message())
}
return
}
return res0
......@@ -78,9 +63,6 @@ func (set EndpointsSet) SetSchema(arg0 context.Context, arg1 string, arg2 string
}
_, res0 = set.SetSchemaEndpoint(arg0, &request)
if res0 != nil {
if e, ok := status.FromError(res0); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res0 = errors.New(e.Message())
}
return
}
return res0
......@@ -98,9 +80,6 @@ func (set EndpointsSet) Delete(arg0 context.Context, arg1 string, arg2 string, a
}
_, res0 = set.DeleteEndpoint(arg0, &request)
if res0 != nil {
if e, ok := status.FromError(res0); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res0 = errors.New(e.Message())
}
return
}
return res0
......
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transportgrpc
import (
transport "git.perx.ru/perxis/perxis-go/pkg/collections/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
grpckit "github.com/go-kit/kit/transport/grpc"
grpc "google.golang.org/grpc"
)
func NewClient(conn *grpc.ClientConn, opts ...grpckit.ClientOption) transport.EndpointsSet {
c := NewGRPCClient(conn, "", opts...)
return transport.EndpointsSet{
CreateEndpoint: grpcerr.ClientMiddleware(c.CreateEndpoint),
DeleteEndpoint: grpcerr.ClientMiddleware(c.DeleteEndpoint),
GetEndpoint: grpcerr.ClientMiddleware(c.GetEndpoint),
ListEndpoint: grpcerr.ClientMiddleware(c.ListEndpoint),
SetSchemaEndpoint: grpcerr.ClientMiddleware(c.SetSchemaEndpoint),
UpdateEndpoint: grpcerr.ClientMiddleware(c.UpdateEndpoint),
}
}
package transportgrpc
import (
"git.perx.ru/perxis/perxis-go/pkg/collections"
"git.perx.ru/perxis/perxis-go/pkg/collections/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
pb "git.perx.ru/perxis/perxis-go/proto/collections"
grpckit "github.com/go-kit/kit/transport/grpc"
)
func NewServer(svc collections.Collections, opts ...grpckit.ServerOption) pb.CollectionsServer {
eps := transport.Endpoints(svc)
eps = transport.EndpointsSet{
CreateEndpoint: grpcerr.ServerMiddleware(eps.CreateEndpoint),
DeleteEndpoint: grpcerr.ServerMiddleware(eps.DeleteEndpoint),
GetEndpoint: grpcerr.ServerMiddleware(eps.GetEndpoint),
ListEndpoint: grpcerr.ServerMiddleware(eps.ListEndpoint),
SetSchemaEndpoint: grpcerr.ServerMiddleware(eps.SetSchemaEndpoint),
UpdateEndpoint: grpcerr.ServerMiddleware(eps.UpdateEndpoint),
}
return NewGRPCServer(&eps, opts...)
}
......@@ -47,14 +47,14 @@ func NewClient(conn *grpc.ClientConn, opts ...Option) *Content {
}
client.Spaces = spacesTransportGrpc.NewClient(conn, config.ClientOptions...)
client.Environments = environmentsTransportGrpc.NewGRPCClient(conn, "", config.ClientOptions...)
client.Collections = collectionsTransportGrpc.NewGRPCClient(conn, "", config.ClientOptions...)
client.Environments = environmentsTransportGrpc.NewClient(conn, config.ClientOptions...)
client.Collections = collectionsTransportGrpc.NewClient(conn, config.ClientOptions...)
client.Items = itemsTransportGrpc.NewClient(conn, config.ClientOptions...)
client.Invitations = invitationsTransportGrpc.NewGRPCClient(conn, "", config.ClientOptions...)
client.Collaborators = collaboratorsTransportGrpc.NewGRPCClient(conn, "", config.ClientOptions...)
client.Clients = clientsTransportGrpc.NewGRPCClient(conn, "", config.ClientOptions...)
client.Locales = localsTransportGrpc.NewGRPCClient(conn, "", config.ClientOptions...)
client.Roles = rolesTransportGrpc.NewGRPCClient(conn, "", config.ClientOptions...)
client.Invitations = invitationsTransportGrpc.NewClient(conn, config.ClientOptions...)
client.Collaborators = collaboratorsTransportGrpc.NewClient(conn, config.ClientOptions...)
client.Clients = clientsTransportGrpc.NewClient(conn, config.ClientOptions...)
client.Locales = localsTransportGrpc.NewClient(conn, config.ClientOptions...)
client.Roles = rolesTransportGrpc.NewClient(conn, config.ClientOptions...)
client.References = referencesTransportGrpc.NewGRPCClient(conn, "", config.ClientOptions...)
if !config.NoDecode {
......
......@@ -4,20 +4,14 @@ package transport
import (
"context"
"errors"
version "git.perx.ru/perxis/perxis-go/pkg/version"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
func (set EndpointsSet) Get(arg0 context.Context) (res0 *version.Version, res1 error) {
request := GetRequest{}
response, res1 := set.GetEndpoint(arg0, &request)
if res1 != nil {
if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
res1 = errors.New(e.Message())
}
return
}
return response.(*GetResponse).Version, res1
......
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transportgrpc
import (
transport "git.perx.ru/perxis/perxis-go/pkg/content/versions/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
grpckit "github.com/go-kit/kit/transport/grpc"
grpc "google.golang.org/grpc"
)
func NewClient(conn *grpc.ClientConn, opts ...grpckit.ClientOption) transport.EndpointsSet {
c := NewGRPCClient(conn, "", opts...)
return transport.EndpointsSet{
GetEndpoint: grpcerr.ClientMiddleware(c.GetEndpoint),
}
}
package transportgrpc
import (
"git.perx.ru/perxis/perxis-go/pkg/content/versions/transport"
grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
versions "git.perx.ru/perxis/perxis-go/pkg/version"
pb "git.perx.ru/perxis/perxis-go/proto/versions/content"
grpckit "github.com/go-kit/kit/transport/grpc"
)
func NewServer(svc versions.Versions, opts ...grpckit.ServerOption) pb.VersionsServer {
eps := transport.Endpoints(svc)
eps = transport.EndpointsSet{
GetEndpoint: grpcerr.ServerMiddleware(eps.GetEndpoint),
}
return NewGRPCServer(&eps, opts...)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment