Skip to content
Snippets Groups Projects
Commit 5b92ba0f authored by ko_oler's avatar ko_oler
Browse files

Перенесён в репозиторий services/members

parent 72e26ae6
No related branches found
No related tags found
No related merge requests found
package members
import (
"fmt"
)
type Member struct {
OrgId string `bson:"orgId"`
UserId string `bson:"userId"`
Role Role `bson:"role"`
}
type Role uint
const (
NotMember Role = iota
RoleMember
RoleOwner
RoleAdmin
)
func (r Role) IsPrivileged() bool {
return r == RoleOwner || r == RoleAdmin
}
func (r Role) Format(s fmt.State, verb rune) {
switch r {
case RoleOwner:
fmt.Fprint(s, "owner")
case RoleAdmin:
fmt.Fprint(s, "admin")
case RoleMember:
fmt.Fprint(s, "member")
}
}
// Code generated by mockery v2.7.4. DO NOT EDIT.
package mocks
import (
context "context"
members "git.perx.ru/perxis/perxis-go/pkg/members"
mock "github.com/stretchr/testify/mock"
)
// Members is an autogenerated mock type for the Members type
type Members struct {
mock.Mock
}
// Get provides a mock function with given fields: ctx, orgId, userId
func (_m *Members) Get(ctx context.Context, orgId string, userId string) (members.Role, error) {
ret := _m.Called(ctx, orgId, userId)
var r0 members.Role
if rf, ok := ret.Get(0).(func(context.Context, string, string) members.Role); ok {
r0 = rf(ctx, orgId, userId)
} else {
r0 = ret.Get(0).(members.Role)
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok {
r1 = rf(ctx, orgId, userId)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// ListMembers provides a mock function with given fields: ctx, orgId
func (_m *Members) ListMembers(ctx context.Context, orgId string) ([]*members.Member, error) {
ret := _m.Called(ctx, orgId)
var r0 []*members.Member
if rf, ok := ret.Get(0).(func(context.Context, string) []*members.Member); ok {
r0 = rf(ctx, orgId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*members.Member)
}
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, string) error); ok {
r1 = rf(ctx, orgId)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// ListOrganizations provides a mock function with given fields: ctx, userId
func (_m *Members) ListOrganizations(ctx context.Context, userId string) ([]*members.Member, error) {
ret := _m.Called(ctx, userId)
var r0 []*members.Member
if rf, ok := ret.Get(0).(func(context.Context, string) []*members.Member); ok {
r0 = rf(ctx, userId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*members.Member)
}
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, string) error); ok {
r1 = rf(ctx, userId)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// Remove provides a mock function with given fields: ctx, orgId, userId
func (_m *Members) Remove(ctx context.Context, orgId string, userId string) error {
ret := _m.Called(ctx, orgId, userId)
var r0 error
if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok {
r0 = rf(ctx, orgId, userId)
} else {
r0 = ret.Error(0)
}
return r0
}
// RemoveAll provides a mock function with given fields: ctx, orgId
func (_m *Members) RemoveAll(ctx context.Context, orgId string) error {
ret := _m.Called(ctx, orgId)
var r0 error
if rf, ok := ret.Get(0).(func(context.Context, string) error); ok {
r0 = rf(ctx, orgId)
} else {
r0 = ret.Error(0)
}
return r0
}
// Set provides a mock function with given fields: ctx, orgId, userId, role
func (_m *Members) Set(ctx context.Context, orgId string, userId string, role members.Role) error {
ret := _m.Called(ctx, orgId, userId, role)
var r0 error
if rf, ok := ret.Get(0).(func(context.Context, string, string, members.Role) error); ok {
r0 = rf(ctx, orgId, userId, role)
} else {
r0 = ret.Error(0)
}
return r0
}
package members
import (
"context"
)
// @microgen grpc
// @protobuf git.perx.ru/perxis/perxis-go/proto/members
// @grpc-addr account.members.Members
type Members interface {
Set(ctx context.Context, orgId, userId string, role Role) (err error)
Get(ctx context.Context, orgId, userId string) (role Role, err error)
Remove(ctx context.Context, orgId, userId string) (err error)
// @microgen -
RemoveAll(ctx context.Context, orgId string) (err error)
ListMembers(ctx context.Context, orgId string) (members []*Member, err error)
ListOrganizations(ctx context.Context, userId string) (organizations []*Member, err error)
}
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transport
import (
"context"
"errors"
members "git.perx.ru/perxis/perxis-go/pkg/members"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
func (set EndpointsSet) Set(arg0 context.Context, arg1 string, arg2 string, arg3 members.Role) (res0 error) {
request := SetRequest{
OrgId: arg1,
Role: arg3,
UserId: arg2,
}
_, 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
}
func (set EndpointsSet) Get(arg0 context.Context, arg1 string, arg2 string) (res0 members.Role, res1 error) {
request := GetRequest{
OrgId: arg1,
UserId: arg2,
}
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
}
func (set EndpointsSet) Remove(arg0 context.Context, arg1 string, arg2 string) (res0 error) {
request := RemoveRequest{
OrgId: arg1,
UserId: arg2,
}
_, 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
}
func (set EndpointsSet) RemoveAll(arg0 context.Context, arg1 string) (res0 error) {
return
}
func (set EndpointsSet) ListMembers(arg0 context.Context, arg1 string) (res0 []*members.Member, res1 error) {
request := ListMembersRequest{OrgId: arg1}
response, res1 := set.ListMembersEndpoint(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.(*ListMembersResponse).Members, res1
}
func (set EndpointsSet) ListOrganizations(arg0 context.Context, arg1 string) (res0 []*members.Member, res1 error) {
request := ListOrganizationsRequest{UserId: arg1}
response, res1 := set.ListOrganizationsEndpoint(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.(*ListOrganizationsResponse).Organizations, res1
}
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transport
import endpoint "github.com/go-kit/kit/endpoint"
// EndpointsSet implements Members API and used for transport purposes.
type EndpointsSet struct {
SetEndpoint endpoint.Endpoint
GetEndpoint endpoint.Endpoint
RemoveEndpoint endpoint.Endpoint
ListMembersEndpoint endpoint.Endpoint
ListOrganizationsEndpoint endpoint.Endpoint
}
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transport
import members "git.perx.ru/perxis/perxis-go/pkg/members"
type (
SetRequest struct {
OrgId string `json:"org_id"`
UserId string `json:"user_id"`
Role members.Role `json:"role"`
}
// Formal exchange type, please do not delete.
SetResponse struct{}
GetRequest struct {
OrgId string `json:"org_id"`
UserId string `json:"user_id"`
}
GetResponse struct {
Role members.Role `json:"role"`
}
RemoveRequest struct {
OrgId string `json:"org_id"`
UserId string `json:"user_id"`
}
// Formal exchange type, please do not delete.
RemoveResponse struct{}
ListMembersRequest struct {
OrgId string `json:"org_id"`
}
ListMembersResponse struct {
Members []*members.Member `json:"members"`
}
ListOrganizationsRequest struct {
UserId string `json:"user_id"`
}
ListOrganizationsResponse struct {
Organizations []*members.Member `json:"organizations"`
}
)
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transportgrpc
import (
pb "git.perx.ru/perxis/perxis-go/proto/members"
transport "git.perx.ru/perxis/perxis/services/members/transport"
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 = "account.members.Members"
}
return transport.EndpointsSet{
GetEndpoint: grpckit.NewClient(
conn, addr, "Get",
_Encode_Get_Request,
_Decode_Get_Response,
pb.GetResponse{},
opts...,
).Endpoint(),
ListMembersEndpoint: grpckit.NewClient(
conn, addr, "ListMembers",
_Encode_ListMembers_Request,
_Decode_ListMembers_Response,
pb.ListMembersResponse{},
opts...,
).Endpoint(),
ListOrganizationsEndpoint: grpckit.NewClient(
conn, addr, "ListOrganizations",
_Encode_ListOrganizations_Request,
_Decode_ListOrganizations_Response,
pb.ListOrganizationsResponse{},
opts...,
).Endpoint(),
RemoveEndpoint: grpckit.NewClient(
conn, addr, "Remove",
_Encode_Remove_Request,
_Decode_Remove_Response,
empty.Empty{},
opts...,
).Endpoint(),
SetEndpoint: grpckit.NewClient(
conn, addr, "Set",
_Encode_Set_Request,
_Decode_Set_Response,
empty.Empty{},
opts...,
).Endpoint(),
}
}
// Code generated by microgen 0.9.1. DO NOT EDIT.
// Please, do not change functions names!
package transportgrpc
import (
"context"
"errors"
"git.perx.ru/perxis/perxis-go/proto/members"
"git.perx.ru/perxis/perxis/services/members/transport"
"github.com/golang/protobuf/ptypes/empty"
)
func _Encode_Set_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil SetRequest")
}
req := request.(*transport.SetRequest)
reqRole, err := RoleToProto(req.Role)
if err != nil {
return nil, err
}
return &members.SetRequest{
OrgId: req.OrgId,
Role: reqRole,
UserId: req.UserId,
}, nil
}
func _Encode_Get_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil GetRequest")
}
req := request.(*transport.GetRequest)
return &members.GetRequest{
OrgId: req.OrgId,
UserId: req.UserId,
}, nil
}
func _Encode_Remove_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil RemoveRequest")
}
req := request.(*transport.RemoveRequest)
return &members.RemoveRequest{
OrgId: req.OrgId,
UserId: req.UserId,
}, nil
}
func _Encode_ListMembers_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil ListMembersRequest")
}
req := request.(*transport.ListMembersRequest)
return &members.ListMembersRequest{OrgId: req.OrgId}, nil
}
func _Encode_ListOrganizations_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil ListOrganizationsRequest")
}
req := request.(*transport.ListOrganizationsRequest)
return &members.ListOrganizationsRequest{UserId: req.UserId}, nil
}
func _Encode_Set_Response(ctx context.Context, response interface{}) (interface{}, error) {
return &empty.Empty{}, nil
}
func _Encode_Get_Response(ctx context.Context, response interface{}) (interface{}, error) {
if response == nil {
return nil, errors.New("nil GetResponse")
}
resp := response.(*transport.GetResponse)
respRole, err := RoleToProto(resp.Role)
if err != nil {
return nil, err
}
return &members.GetResponse{Role: respRole}, nil
}
func _Encode_Remove_Response(ctx context.Context, response interface{}) (interface{}, error) {
return &empty.Empty{}, nil
}
func _Encode_ListMembers_Response(ctx context.Context, response interface{}) (interface{}, error) {
if response == nil {
return nil, errors.New("nil ListMembersResponse")
}
resp := response.(*transport.ListMembersResponse)
respMembers, err := ListPtrMemberToProto(resp.Members)
if err != nil {
return nil, err
}
return &members.ListMembersResponse{Members: respMembers}, nil
}
func _Encode_ListOrganizations_Response(ctx context.Context, response interface{}) (interface{}, error) {
if response == nil {
return nil, errors.New("nil ListOrganizationsResponse")
}
resp := response.(*transport.ListOrganizationsResponse)
respOrganizations, err := ListPtrMemberToProto(resp.Organizations)
if err != nil {
return nil, err
}
return &members.ListOrganizationsResponse{Organizations: respOrganizations}, nil
}
func _Decode_Set_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil SetRequest")
}
req := request.(*members.SetRequest)
reqRole, err := ProtoToRole(req.Role)
if err != nil {
return nil, err
}
return &transport.SetRequest{
OrgId: string(req.OrgId),
Role: reqRole,
UserId: string(req.UserId),
}, nil
}
func _Decode_Get_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil GetRequest")
}
req := request.(*members.GetRequest)
return &transport.GetRequest{
OrgId: string(req.OrgId),
UserId: string(req.UserId),
}, nil
}
func _Decode_Remove_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil RemoveRequest")
}
req := request.(*members.RemoveRequest)
return &transport.RemoveRequest{
OrgId: string(req.OrgId),
UserId: string(req.UserId),
}, nil
}
func _Decode_ListMembers_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil ListMembersRequest")
}
req := request.(*members.ListMembersRequest)
return &transport.ListMembersRequest{OrgId: string(req.OrgId)}, nil
}
func _Decode_ListOrganizations_Request(ctx context.Context, request interface{}) (interface{}, error) {
if request == nil {
return nil, errors.New("nil ListOrganizationsRequest")
}
req := request.(*members.ListOrganizationsRequest)
return &transport.ListOrganizationsRequest{UserId: string(req.UserId)}, nil
}
func _Decode_Set_Response(ctx context.Context, response interface{}) (interface{}, error) {
return &empty.Empty{}, nil
}
func _Decode_Get_Response(ctx context.Context, response interface{}) (interface{}, error) {
if response == nil {
return nil, errors.New("nil GetResponse")
}
resp := response.(*members.GetResponse)
respRole, err := ProtoToRole(resp.Role)
if err != nil {
return nil, err
}
return &transport.GetResponse{Role: respRole}, nil
}
func _Decode_Remove_Response(ctx context.Context, response interface{}) (interface{}, error) {
return &empty.Empty{}, nil
}
func _Decode_ListMembers_Response(ctx context.Context, response interface{}) (interface{}, error) {
if response == nil {
return nil, errors.New("nil ListMembersResponse")
}
resp := response.(*members.ListMembersResponse)
respMembers, err := ProtoToListPtrMember(resp.Members)
if err != nil {
return nil, err
}
return &transport.ListMembersResponse{Members: respMembers}, nil
}
func _Decode_ListOrganizations_Response(ctx context.Context, response interface{}) (interface{}, error) {
if response == nil {
return nil, errors.New("nil ListOrganizationsResponse")
}
resp := response.(*members.ListOrganizationsResponse)
respOrganizations, err := ProtoToListPtrMember(resp.Organizations)
if err != nil {
return nil, err
}
return &transport.ListOrganizationsResponse{Organizations: respOrganizations}, nil
}
// 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 (
pb "git.perx.ru/perxis/perxis-go/proto/members"
service "git.perx.ru/perxis/perxis/services/members"
)
func RoleToProto(role service.Role) (pb.Role, error) {
return pb.Role(role), nil
}
func ProtoToRole(protoRole pb.Role) (service.Role, error) {
return service.Role(protoRole), nil
}
func ListPtrMemberToProto(members []*service.Member) ([]*pb.Member, error) {
res := make([]*pb.Member, 0, len(members))
for _, m := range members {
res = append(res, &pb.Member{
OrgId: m.OrgId,
UserId: m.UserId,
Role: pb.Role(m.Role),
})
}
return res, nil
}
func ProtoToListPtrMember(protoMembers []*pb.Member) ([]*service.Member, error) {
res := make([]*service.Member, 0, len(protoMembers))
for _, m := range protoMembers {
res = append(res, &service.Member{
OrgId: m.OrgId,
UserId: m.UserId,
Role: service.Role(m.Role),
})
}
return res, nil
}
// Code generated by microgen 0.9.1. DO NOT EDIT.
// DO NOT EDIT.
package transportgrpc
import (
pb "git.perx.ru/perxis/perxis-go/proto/members"
transport "git.perx.ru/perxis/perxis/services/members/transport"
grpc "github.com/go-kit/kit/transport/grpc"
empty "github.com/golang/protobuf/ptypes/empty"
context "golang.org/x/net/context"
)
type membersServer struct {
set grpc.Handler
get grpc.Handler
remove grpc.Handler
listMembers grpc.Handler
listOrganizations grpc.Handler
pb.UnimplementedMembersServer
}
func NewGRPCServer(endpoints *transport.EndpointsSet, opts ...grpc.ServerOption) pb.MembersServer {
return &membersServer{
get: grpc.NewServer(
endpoints.GetEndpoint,
_Decode_Get_Request,
_Encode_Get_Response,
opts...,
),
listMembers: grpc.NewServer(
endpoints.ListMembersEndpoint,
_Decode_ListMembers_Request,
_Encode_ListMembers_Response,
opts...,
),
listOrganizations: grpc.NewServer(
endpoints.ListOrganizationsEndpoint,
_Decode_ListOrganizations_Request,
_Encode_ListOrganizations_Response,
opts...,
),
remove: grpc.NewServer(
endpoints.RemoveEndpoint,
_Decode_Remove_Request,
_Encode_Remove_Response,
opts...,
),
set: grpc.NewServer(
endpoints.SetEndpoint,
_Decode_Set_Request,
_Encode_Set_Response,
opts...,
),
}
}
func (S *membersServer) Set(ctx context.Context, req *pb.SetRequest) (*empty.Empty, error) {
_, resp, err := S.set.ServeGRPC(ctx, req)
if err != nil {
return nil, err
}
return resp.(*empty.Empty), nil
}
func (S *membersServer) Get(ctx context.Context, req *pb.GetRequest) (*pb.GetResponse, error) {
_, resp, err := S.get.ServeGRPC(ctx, req)
if err != nil {
return nil, err
}
return resp.(*pb.GetResponse), nil
}
func (S *membersServer) Remove(ctx context.Context, req *pb.RemoveRequest) (*empty.Empty, error) {
_, resp, err := S.remove.ServeGRPC(ctx, req)
if err != nil {
return nil, err
}
return resp.(*empty.Empty), nil
}
func (S *membersServer) ListMembers(ctx context.Context, req *pb.ListMembersRequest) (*pb.ListMembersResponse, error) {
_, resp, err := S.listMembers.ServeGRPC(ctx, req)
if err != nil {
return nil, err
}
return resp.(*pb.ListMembersResponse), nil
}
func (S *membersServer) ListOrganizations(ctx context.Context, req *pb.ListOrganizationsRequest) (*pb.ListOrganizationsResponse, error) {
_, resp, err := S.listOrganizations.ServeGRPC(ctx, req)
if err != nil {
return nil, err
}
return resp.(*pb.ListOrganizationsResponse), nil
}
// Code generated by microgen 0.9.1. DO NOT EDIT.
package transport
import (
"context"
members "git.perx.ru/perxis/perxis-go/pkg/members"
endpoint "github.com/go-kit/kit/endpoint"
)
func Endpoints(svc members.Members) EndpointsSet {
return EndpointsSet{
GetEndpoint: GetEndpoint(svc),
ListMembersEndpoint: ListMembersEndpoint(svc),
ListOrganizationsEndpoint: ListOrganizationsEndpoint(svc),
RemoveEndpoint: RemoveEndpoint(svc),
SetEndpoint: SetEndpoint(svc),
}
}
func SetEndpoint(svc members.Members) endpoint.Endpoint {
return func(arg0 context.Context, request interface{}) (interface{}, error) {
req := request.(*SetRequest)
res0 := svc.Set(arg0, req.OrgId, req.UserId, req.Role)
return &SetResponse{}, res0
}
}
func GetEndpoint(svc members.Members) endpoint.Endpoint {
return func(arg0 context.Context, request interface{}) (interface{}, error) {
req := request.(*GetRequest)
res0, res1 := svc.Get(arg0, req.OrgId, req.UserId)
return &GetResponse{Role: res0}, res1
}
}
func RemoveEndpoint(svc members.Members) endpoint.Endpoint {
return func(arg0 context.Context, request interface{}) (interface{}, error) {
req := request.(*RemoveRequest)
res0 := svc.Remove(arg0, req.OrgId, req.UserId)
return &RemoveResponse{}, res0
}
}
func ListMembersEndpoint(svc members.Members) endpoint.Endpoint {
return func(arg0 context.Context, request interface{}) (interface{}, error) {
req := request.(*ListMembersRequest)
res0, res1 := svc.ListMembers(arg0, req.OrgId)
return &ListMembersResponse{Members: res0}, res1
}
}
func ListOrganizationsEndpoint(svc members.Members) endpoint.Endpoint {
return func(arg0 context.Context, request interface{}) (interface{}, error) {
req := request.(*ListOrganizationsRequest)
res0, res1 := svc.ListOrganizations(arg0, req.UserId)
return &ListOrganizationsResponse{Organizations: res0}, res1
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment