diff --git a/pkg/locales/locale.go b/pkg/locales/locale.go new file mode 100644 index 0000000000000000000000000000000000000000..d3cc43c6c625a5090d975409d7aa2beb16eefc3a --- /dev/null +++ b/pkg/locales/locale.go @@ -0,0 +1,7 @@ +package locales + +type Locale struct { + ID string `json:"id" bson:"_id"` // (Пример: "en", "en-US") + SpaceID string `json:"spaceId" bson:"-"` + Name string `json:"name" bson:"name"` // (Пример: "English", "English (US)" ) +} diff --git a/pkg/locales/mocks/Locales.go b/pkg/locales/mocks/Locales.go new file mode 100644 index 0000000000000000000000000000000000000000..3e63dfedfff975f52f886d19e1e8982bccb96b7e --- /dev/null +++ b/pkg/locales/mocks/Locales.go @@ -0,0 +1,75 @@ +// Code generated by mockery v2.7.4. DO NOT EDIT. + +package mocks + +import ( + context "context" + + locales "git.perx.ru/perxis/perxis-go/pkg/locales" + mock "github.com/stretchr/testify/mock" +) + +// Locales is an autogenerated mock type for the Locales type +type Locales struct { + mock.Mock +} + +// Create provides a mock function with given fields: ctx, locale +func (_m *Locales) Create(ctx context.Context, locale *locales.Locale) (*locales.Locale, error) { + ret := _m.Called(ctx, locale) + + var r0 *locales.Locale + if rf, ok := ret.Get(0).(func(context.Context, *locales.Locale) *locales.Locale); ok { + r0 = rf(ctx, locale) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*locales.Locale) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *locales.Locale) error); ok { + r1 = rf(ctx, locale) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Delete provides a mock function with given fields: ctx, spaceId, localeId +func (_m *Locales) Delete(ctx context.Context, spaceId string, localeId string) error { + ret := _m.Called(ctx, spaceId, localeId) + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok { + r0 = rf(ctx, spaceId, localeId) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// List provides a mock function with given fields: ctx, spaceId +func (_m *Locales) List(ctx context.Context, spaceId string) ([]*locales.Locale, error) { + ret := _m.Called(ctx, spaceId) + + var r0 []*locales.Locale + if rf, ok := ret.Get(0).(func(context.Context, string) []*locales.Locale); ok { + r0 = rf(ctx, spaceId) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]*locales.Locale) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, spaceId) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} diff --git a/pkg/locales/service.go b/pkg/locales/service.go new file mode 100644 index 0000000000000000000000000000000000000000..7724d7f7ecdb2f4733d97bff01113d105adabdeb --- /dev/null +++ b/pkg/locales/service.go @@ -0,0 +1,14 @@ +package locales + +import ( + "context" +) + +// @microgen grpc +// @protobuf git.perx.ru/perxis/perxis-go/proto/locales +// @grpc-addr content.locales.Locales +type Locales interface { + Create(ctx context.Context, locale *Locale) (created *Locale, err error) + List(ctx context.Context, spaceId string) (locales []*Locale, err error) + Delete(ctx context.Context, spaceId, localeId string) (err error) +} diff --git a/pkg/locales/transport/client.microgen.go b/pkg/locales/transport/client.microgen.go new file mode 100644 index 0000000000000000000000000000000000000000..f8cd9dee23dafeff1d635b3f5ee42f6e5c8667f1 --- /dev/null +++ b/pkg/locales/transport/client.microgen.go @@ -0,0 +1,51 @@ +// Code generated by microgen 0.9.1. DO NOT EDIT. + +package transport + +import ( + "context" + "errors" + + locales "git.perx.ru/perxis/perxis-go/pkg/locales" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +func (set EndpointsSet) Create(arg0 context.Context, arg1 *locales.Locale) (res0 *locales.Locale, res1 error) { + request := CreateRequest{Locale: 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 +} + +func (set EndpointsSet) List(arg0 context.Context, arg1 string) (res0 []*locales.Locale, res1 error) { + 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).Locales, res1 +} + +func (set EndpointsSet) Delete(arg0 context.Context, arg1 string, arg2 string) (res0 error) { + request := DeleteRequest{ + LocaleId: arg2, + SpaceId: arg1, + } + _, 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 +} diff --git a/pkg/locales/transport/endpoints.microgen.go b/pkg/locales/transport/endpoints.microgen.go new file mode 100644 index 0000000000000000000000000000000000000000..ffca7318747104f8b58af332e90646f8cc6a8b9c --- /dev/null +++ b/pkg/locales/transport/endpoints.microgen.go @@ -0,0 +1,12 @@ +// Code generated by microgen 0.9.1. DO NOT EDIT. + +package transport + +import endpoint "github.com/go-kit/kit/endpoint" + +// EndpointsSet implements Locales API and used for transport purposes. +type EndpointsSet struct { + CreateEndpoint endpoint.Endpoint + ListEndpoint endpoint.Endpoint + DeleteEndpoint endpoint.Endpoint +} diff --git a/pkg/locales/transport/exchanges.microgen.go b/pkg/locales/transport/exchanges.microgen.go new file mode 100644 index 0000000000000000000000000000000000000000..a07204e13a233fd7bae40c74e9984061871a92b7 --- /dev/null +++ b/pkg/locales/transport/exchanges.microgen.go @@ -0,0 +1,28 @@ +// Code generated by microgen 0.9.1. DO NOT EDIT. + +package transport + +import locales "git.perx.ru/perxis/perxis-go/pkg/locales" + +type ( + CreateRequest struct { + Locale *locales.Locale `json:"locale"` + } + CreateResponse struct { + Created *locales.Locale `json:"created"` + } + + ListRequest struct { + SpaceId string `json:"space_id"` + } + ListResponse struct { + Locales []*locales.Locale `json:"locales"` + } + + DeleteRequest struct { + SpaceId string `json:"space_id"` + LocaleId string `json:"locale_id"` + } + // Formal exchange type, please do not delete. + DeleteResponse struct{} +) diff --git a/pkg/locales/transport/grpc/client.microgen.go b/pkg/locales/transport/grpc/client.microgen.go new file mode 100644 index 0000000000000000000000000000000000000000..3af5bbae0ed86bf079d93622cc8f1aa4f7fbdfd8 --- /dev/null +++ b/pkg/locales/transport/grpc/client.microgen.go @@ -0,0 +1,40 @@ +// Code generated by microgen 0.9.1. DO NOT EDIT. + +package transportgrpc + +import ( + transport "git.perx.ru/perxis/perxis-go/pkg/locales/transport" + pb "git.perx.ru/perxis/perxis-go/proto/locales" + grpckit "github.com/go-kit/kit/transport/grpc" + empty "github.com/golang/protobuf/ptypes/empty" + grpc "google.golang.org/grpc" +) + +func NewGRPCClient(conn *grpc.ClientConn, addr string, opts ...grpckit.ClientOption) transport.EndpointsSet { + if addr == "" { + addr = "content.locales.Locales" + } + return transport.EndpointsSet{ + CreateEndpoint: grpckit.NewClient( + conn, addr, "Create", + _Encode_Create_Request, + _Decode_Create_Response, + pb.CreateResponse{}, + opts..., + ).Endpoint(), + DeleteEndpoint: grpckit.NewClient( + conn, addr, "Delete", + _Encode_Delete_Request, + _Decode_Delete_Response, + empty.Empty{}, + opts..., + ).Endpoint(), + ListEndpoint: grpckit.NewClient( + conn, addr, "List", + _Encode_List_Request, + _Decode_List_Response, + pb.ListResponse{}, + opts..., + ).Endpoint(), + } +} diff --git a/pkg/locales/transport/grpc/protobuf_endpoint_converters.microgen.go b/pkg/locales/transport/grpc/protobuf_endpoint_converters.microgen.go new file mode 100644 index 0000000000000000000000000000000000000000..5d06e8232c89f226e4f7c0a80ca6d52eb219d48f --- /dev/null +++ b/pkg/locales/transport/grpc/protobuf_endpoint_converters.microgen.go @@ -0,0 +1,131 @@ +// Code generated by microgen 0.9.1. DO NOT EDIT. + +// Please, do not change functions names! +package transportgrpc + +import ( + "context" + "errors" + + transport "git.perx.ru/perxis/perxis-go/pkg/locales/transport" + pb "git.perx.ru/perxis/perxis-go/proto/locales" + empty "github.com/golang/protobuf/ptypes/empty" +) + +func _Encode_Create_Request(ctx context.Context, request interface{}) (interface{}, error) { + if request == nil { + return nil, errors.New("nil CreateRequest") + } + req := request.(*transport.CreateRequest) + pbLocale, err := PtrLocaleToProto(req.Locale) + if err != nil { + return nil, err + } + return &pb.CreateRequest{Locale: pbLocale}, nil +} + +func _Encode_List_Request(ctx context.Context, request interface{}) (interface{}, error) { + if request == nil { + return nil, errors.New("nil ListRequest") + } + req := request.(*transport.ListRequest) + return &pb.ListRequest{SpaceId: req.SpaceId}, nil +} + +func _Encode_Delete_Request(ctx context.Context, request interface{}) (interface{}, error) { + if request == nil { + return nil, errors.New("nil DeleteRequest") + } + req := request.(*transport.DeleteRequest) + return &pb.DeleteRequest{ + LocaleId: req.LocaleId, + SpaceId: req.SpaceId, + }, nil +} + +func _Encode_Create_Response(ctx context.Context, response interface{}) (interface{}, error) { + if response == nil { + return nil, errors.New("nil CreateResponse") + } + resp := response.(*transport.CreateResponse) + respLocale, err := PtrLocaleToProto(resp.Created) + if err != nil { + return nil, err + } + return &pb.CreateResponse{Locale: respLocale}, nil +} + +func _Encode_List_Response(ctx context.Context, response interface{}) (interface{}, error) { + if response == nil { + return nil, errors.New("nil ListResponse") + } + resp := response.(*transport.ListResponse) + respLocales, err := ListPtrLocaleToProto(resp.Locales) + if err != nil { + return nil, err + } + return &pb.ListResponse{Locales: respLocales}, nil +} + +func _Encode_Delete_Response(ctx context.Context, response interface{}) (interface{}, error) { + return &empty.Empty{}, nil +} + +func _Decode_Create_Request(ctx context.Context, request interface{}) (interface{}, error) { + if request == nil { + return nil, errors.New("nil CreateRequest") + } + req := request.(*pb.CreateRequest) + locale, err := ProtoToPtrLocale(req.Locale) + if err != nil { + return nil, err + } + return &transport.CreateRequest{Locale: locale}, nil +} + +func _Decode_List_Request(ctx context.Context, request interface{}) (interface{}, error) { + if request == nil { + return nil, errors.New("nil ListRequest") + } + req := request.(*pb.ListRequest) + return &transport.ListRequest{SpaceId: string(req.SpaceId)}, nil +} + +func _Decode_Delete_Request(ctx context.Context, request interface{}) (interface{}, error) { + if request == nil { + return nil, errors.New("nil DeleteRequest") + } + req := request.(*pb.DeleteRequest) + return &transport.DeleteRequest{ + LocaleId: string(req.LocaleId), + SpaceId: string(req.SpaceId), + }, nil +} + +func _Decode_Create_Response(ctx context.Context, response interface{}) (interface{}, error) { + if response == nil { + return nil, errors.New("nil CreateResponse") + } + resp := response.(*pb.CreateResponse) + respLocale, err := ProtoToPtrLocale(resp.Locale) + if err != nil { + return nil, err + } + return &transport.CreateResponse{Created: respLocale}, nil +} + +func _Decode_List_Response(ctx context.Context, response interface{}) (interface{}, error) { + if response == nil { + return nil, errors.New("nil ListResponse") + } + resp := response.(*pb.ListResponse) + respLocales, err := ProtoToListPtrLocale(resp.Locales) + if err != nil { + return nil, err + } + return &transport.ListResponse{Locales: respLocales}, nil +} + +func _Decode_Delete_Response(ctx context.Context, response interface{}) (interface{}, error) { + return &empty.Empty{}, nil +} diff --git a/pkg/locales/transport/grpc/protobuf_type_converters.microgen.go b/pkg/locales/transport/grpc/protobuf_type_converters.microgen.go new file mode 100644 index 0000000000000000000000000000000000000000..6dca0bb8afa68dfe3fa17b53d315f3716c48ae36 --- /dev/null +++ b/pkg/locales/transport/grpc/protobuf_type_converters.microgen.go @@ -0,0 +1,48 @@ +// Code generated by microgen 0.9.1. DO NOT EDIT. + +// It is better for you if you do not change functions names! +// This file will never be overwritten. +package transportgrpc + +import ( + service "git.perx.ru/perxis/perxis-go/pkg/locales" + pb "git.perx.ru/perxis/perxis-go/proto/locales" +) + +func PtrLocaleToProto(locale *service.Locale) (*pb.Locale, error) { + if locale == nil { + return nil, nil + } + return &pb.Locale{Id: locale.ID, Name: locale.Name, SpaceId: locale.SpaceID}, nil +} + +func ProtoToPtrLocale(protoLocale *pb.Locale) (*service.Locale, error) { + if protoLocale == nil { + return nil, nil + } + return &service.Locale{ID: protoLocale.Id, Name: protoLocale.Name, SpaceID: protoLocale.SpaceId}, nil +} + +func ListPtrLocaleToProto(locales []*service.Locale) ([]*pb.Locale, error) { + protoLocales := make([]*pb.Locale, 0, len(locales)) + for _, l := range locales { + pl, err := PtrLocaleToProto(l) + if err != nil { + return nil, err + } + protoLocales = append(protoLocales, pl) + } + return protoLocales, nil +} + +func ProtoToListPtrLocale(protoLocales []*pb.Locale) ([]*service.Locale, error) { + locales := make([]*service.Locale, 0, len(protoLocales)) + for _, pl := range protoLocales { + l, err := ProtoToPtrLocale(pl) + if err != nil { + return nil, err + } + locales = append(locales, l) + } + return locales, nil +} diff --git a/pkg/locales/transport/grpc/server.microgen.go b/pkg/locales/transport/grpc/server.microgen.go new file mode 100644 index 0000000000000000000000000000000000000000..88e549f6e23e99a04d037fcefb4603a13821d24a --- /dev/null +++ b/pkg/locales/transport/grpc/server.microgen.go @@ -0,0 +1,67 @@ +// Code generated by microgen 0.9.1. DO NOT EDIT. + +// DO NOT EDIT. +package transportgrpc + +import ( + transport "git.perx.ru/perxis/perxis-go/pkg/locales/transport" + pb "git.perx.ru/perxis/perxis-go/proto/locales" + grpc "github.com/go-kit/kit/transport/grpc" + empty "github.com/golang/protobuf/ptypes/empty" + context "golang.org/x/net/context" +) + +type localesServer struct { + create grpc.Handler + list grpc.Handler + delete grpc.Handler + + pb.UnimplementedLocalesServer +} + +func NewGRPCServer(endpoints *transport.EndpointsSet, opts ...grpc.ServerOption) pb.LocalesServer { + return &localesServer{ + create: grpc.NewServer( + endpoints.CreateEndpoint, + _Decode_Create_Request, + _Encode_Create_Response, + opts..., + ), + delete: grpc.NewServer( + endpoints.DeleteEndpoint, + _Decode_Delete_Request, + _Encode_Delete_Response, + opts..., + ), + list: grpc.NewServer( + endpoints.ListEndpoint, + _Decode_List_Request, + _Encode_List_Response, + opts..., + ), + } +} + +func (S *localesServer) Create(ctx context.Context, req *pb.CreateRequest) (*pb.CreateResponse, error) { + _, resp, err := S.create.ServeGRPC(ctx, req) + if err != nil { + return nil, err + } + return resp.(*pb.CreateResponse), nil +} + +func (S *localesServer) List(ctx context.Context, req *pb.ListRequest) (*pb.ListResponse, error) { + _, resp, err := S.list.ServeGRPC(ctx, req) + if err != nil { + return nil, err + } + return resp.(*pb.ListResponse), nil +} + +func (S *localesServer) Delete(ctx context.Context, req *pb.DeleteRequest) (*empty.Empty, error) { + _, resp, err := S.delete.ServeGRPC(ctx, req) + if err != nil { + return nil, err + } + return resp.(*empty.Empty), nil +} diff --git a/pkg/locales/transport/server.microgen.go b/pkg/locales/transport/server.microgen.go new file mode 100644 index 0000000000000000000000000000000000000000..5ce815dcb52415a93ddfeb095f99e22fb14c4492 --- /dev/null +++ b/pkg/locales/transport/server.microgen.go @@ -0,0 +1,42 @@ +// Code generated by microgen 0.9.1. DO NOT EDIT. + +package transport + +import ( + "context" + + locales "git.perx.ru/perxis/perxis-go/pkg/locales" + endpoint "github.com/go-kit/kit/endpoint" +) + +func Endpoints(svc locales.Locales) EndpointsSet { + return EndpointsSet{ + CreateEndpoint: CreateEndpoint(svc), + DeleteEndpoint: DeleteEndpoint(svc), + ListEndpoint: ListEndpoint(svc), + } +} + +func CreateEndpoint(svc locales.Locales) endpoint.Endpoint { + return func(arg0 context.Context, request interface{}) (interface{}, error) { + req := request.(*CreateRequest) + res0, res1 := svc.Create(arg0, req.Locale) + return &CreateResponse{Created: res0}, res1 + } +} + +func ListEndpoint(svc locales.Locales) endpoint.Endpoint { + return func(arg0 context.Context, request interface{}) (interface{}, error) { + req := request.(*ListRequest) + res0, res1 := svc.List(arg0, req.SpaceId) + return &ListResponse{Locales: res0}, res1 + } +} + +func DeleteEndpoint(svc locales.Locales) endpoint.Endpoint { + return func(arg0 context.Context, request interface{}) (interface{}, error) { + req := request.(*DeleteRequest) + res0 := svc.Delete(arg0, req.SpaceId, req.LocaleId) + return &DeleteResponse{}, res0 + } +}