diff --git a/api/v1/navigation.pb.go b/api/v1/navigation.pb.go new file mode 100644 index 0000000..8510620 --- /dev/null +++ b/api/v1/navigation.pb.go @@ -0,0 +1,1990 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: api/v1/navigation.proto + +package v1 + +import ( + context "context" + fmt "fmt" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" + _ "google.golang.org/protobuf/types/known/timestamppb" + io "io" + math "math" + math_bits "math/bits" + time "time" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type Navigation struct { + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Href string `protobuf:"bytes,3,opt,name=href,proto3" json:"href,omitempty"` + Target string `protobuf:"bytes,4,opt,name=target,proto3" json:"target,omitempty"` + Color string `protobuf:"bytes,5,opt,name=color,proto3" json:"color,omitempty"` + Sort int32 `protobuf:"varint,6,opt,name=sort,proto3" json:"sort,omitempty"` + Enable bool `protobuf:"varint,7,opt,name=enable,proto3" json:"enable,omitempty"` + ParentId int64 `protobuf:"varint,8,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` + Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` + CreatedAt *time.Time `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3,stdtime" json:"created_at,omitempty"` + UpdatedAt *time.Time `protobuf:"bytes,11,opt,name=updated_at,json=updatedAt,proto3,stdtime" json:"updated_at,omitempty"` +} + +func (m *Navigation) Reset() { *m = Navigation{} } +func (m *Navigation) String() string { return proto.CompactTextString(m) } +func (*Navigation) ProtoMessage() {} +func (*Navigation) Descriptor() ([]byte, []int) { + return fileDescriptor_4811b784a9b7a42f, []int{0} +} +func (m *Navigation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Navigation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Navigation.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Navigation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Navigation.Merge(m, src) +} +func (m *Navigation) XXX_Size() int { + return m.Size() +} +func (m *Navigation) XXX_DiscardUnknown() { + xxx_messageInfo_Navigation.DiscardUnknown(m) +} + +var xxx_messageInfo_Navigation proto.InternalMessageInfo + +func (m *Navigation) GetId() int64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *Navigation) GetTitle() string { + if m != nil { + return m.Title + } + return "" +} + +func (m *Navigation) GetHref() string { + if m != nil { + return m.Href + } + return "" +} + +func (m *Navigation) GetTarget() string { + if m != nil { + return m.Target + } + return "" +} + +func (m *Navigation) GetColor() string { + if m != nil { + return m.Color + } + return "" +} + +func (m *Navigation) GetSort() int32 { + if m != nil { + return m.Sort + } + return 0 +} + +func (m *Navigation) GetEnable() bool { + if m != nil { + return m.Enable + } + return false +} + +func (m *Navigation) GetParentId() int64 { + if m != nil { + return m.ParentId + } + return 0 +} + +func (m *Navigation) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *Navigation) GetCreatedAt() *time.Time { + if m != nil { + return m.CreatedAt + } + return nil +} + +func (m *Navigation) GetUpdatedAt() *time.Time { + if m != nil { + return m.UpdatedAt + } + return nil +} + +type DeleteNavigationRequest struct { + Id []int64 `protobuf:"varint,1,rep,packed,name=id,proto3" json:"id,omitempty"` +} + +func (m *DeleteNavigationRequest) Reset() { *m = DeleteNavigationRequest{} } +func (m *DeleteNavigationRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteNavigationRequest) ProtoMessage() {} +func (*DeleteNavigationRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_4811b784a9b7a42f, []int{1} +} +func (m *DeleteNavigationRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DeleteNavigationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DeleteNavigationRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DeleteNavigationRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteNavigationRequest.Merge(m, src) +} +func (m *DeleteNavigationRequest) XXX_Size() int { + return m.Size() +} +func (m *DeleteNavigationRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteNavigationRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteNavigationRequest proto.InternalMessageInfo + +func (m *DeleteNavigationRequest) GetId() []int64 { + if m != nil { + return m.Id + } + return nil +} + +type GetNavigationRequest struct { + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *GetNavigationRequest) Reset() { *m = GetNavigationRequest{} } +func (m *GetNavigationRequest) String() string { return proto.CompactTextString(m) } +func (*GetNavigationRequest) ProtoMessage() {} +func (*GetNavigationRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_4811b784a9b7a42f, []int{2} +} +func (m *GetNavigationRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetNavigationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetNavigationRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetNavigationRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetNavigationRequest.Merge(m, src) +} +func (m *GetNavigationRequest) XXX_Size() int { + return m.Size() +} +func (m *GetNavigationRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetNavigationRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetNavigationRequest proto.InternalMessageInfo + +func (m *GetNavigationRequest) GetId() int64 { + if m != nil { + return m.Id + } + return 0 +} + +type ListNavigationRequest struct { + Page int64 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + Size_ int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` + Wd string `protobuf:"bytes,3,opt,name=wd,proto3" json:"wd,omitempty"` + Field []string `protobuf:"bytes,4,rep,name=field,proto3" json:"field,omitempty"` + Order string `protobuf:"bytes,5,opt,name=order,proto3" json:"order,omitempty"` +} + +func (m *ListNavigationRequest) Reset() { *m = ListNavigationRequest{} } +func (m *ListNavigationRequest) String() string { return proto.CompactTextString(m) } +func (*ListNavigationRequest) ProtoMessage() {} +func (*ListNavigationRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_4811b784a9b7a42f, []int{3} +} +func (m *ListNavigationRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ListNavigationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ListNavigationRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ListNavigationRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListNavigationRequest.Merge(m, src) +} +func (m *ListNavigationRequest) XXX_Size() int { + return m.Size() +} +func (m *ListNavigationRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListNavigationRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListNavigationRequest proto.InternalMessageInfo + +func (m *ListNavigationRequest) GetPage() int64 { + if m != nil { + return m.Page + } + return 0 +} + +func (m *ListNavigationRequest) GetSize_() int64 { + if m != nil { + return m.Size_ + } + return 0 +} + +func (m *ListNavigationRequest) GetWd() string { + if m != nil { + return m.Wd + } + return "" +} + +func (m *ListNavigationRequest) GetField() []string { + if m != nil { + return m.Field + } + return nil +} + +func (m *ListNavigationRequest) GetOrder() string { + if m != nil { + return m.Order + } + return "" +} + +type ListNavigationReply struct { + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Navigation []*Navigation `protobuf:"bytes,2,rep,name=navigation,proto3" json:"navigation,omitempty"` +} + +func (m *ListNavigationReply) Reset() { *m = ListNavigationReply{} } +func (m *ListNavigationReply) String() string { return proto.CompactTextString(m) } +func (*ListNavigationReply) ProtoMessage() {} +func (*ListNavigationReply) Descriptor() ([]byte, []int) { + return fileDescriptor_4811b784a9b7a42f, []int{4} +} +func (m *ListNavigationReply) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ListNavigationReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ListNavigationReply.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ListNavigationReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListNavigationReply.Merge(m, src) +} +func (m *ListNavigationReply) XXX_Size() int { + return m.Size() +} +func (m *ListNavigationReply) XXX_DiscardUnknown() { + xxx_messageInfo_ListNavigationReply.DiscardUnknown(m) +} + +var xxx_messageInfo_ListNavigationReply proto.InternalMessageInfo + +func (m *ListNavigationReply) GetTotal() int64 { + if m != nil { + return m.Total + } + return 0 +} + +func (m *ListNavigationReply) GetNavigation() []*Navigation { + if m != nil { + return m.Navigation + } + return nil +} + +func init() { + proto.RegisterType((*Navigation)(nil), "api.v1.Navigation") + proto.RegisterType((*DeleteNavigationRequest)(nil), "api.v1.DeleteNavigationRequest") + proto.RegisterType((*GetNavigationRequest)(nil), "api.v1.GetNavigationRequest") + proto.RegisterType((*ListNavigationRequest)(nil), "api.v1.ListNavigationRequest") + proto.RegisterType((*ListNavigationReply)(nil), "api.v1.ListNavigationReply") +} + +func init() { proto.RegisterFile("api/v1/navigation.proto", fileDescriptor_4811b784a9b7a42f) } + +var fileDescriptor_4811b784a9b7a42f = []byte{ + // 632 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xc1, 0x4f, 0xd4, 0x4e, + 0x14, 0xc7, 0x99, 0xee, 0xb2, 0x3f, 0xf6, 0x6d, 0x20, 0xfc, 0xc6, 0x95, 0x1d, 0x0b, 0x74, 0x9b, + 0x1e, 0x4c, 0xe5, 0xd0, 0x86, 0x35, 0x5e, 0xf4, 0x60, 0x40, 0x8d, 0x21, 0x31, 0x86, 0x34, 0x7a, + 0xd0, 0x84, 0x90, 0x61, 0x3b, 0xd4, 0x49, 0xba, 0x9d, 0xda, 0x0e, 0x4b, 0xd0, 0x8b, 0xf1, 0x2f, + 0x20, 0xf1, 0x9f, 0xf2, 0x48, 0xe2, 0xc5, 0x9b, 0x0a, 0xfe, 0x21, 0xa6, 0xd3, 0x29, 0x2c, 0x6c, + 0x37, 0x7a, 0x7b, 0xef, 0xcd, 0x9b, 0xcf, 0x9b, 0x7c, 0xbf, 0xaf, 0x85, 0x1e, 0x4d, 0xb9, 0x3f, + 0xde, 0xf4, 0x13, 0x3a, 0xe6, 0x11, 0x95, 0x5c, 0x24, 0x5e, 0x9a, 0x09, 0x29, 0x70, 0x8b, 0xa6, + 0xdc, 0x1b, 0x6f, 0x9a, 0xfd, 0x48, 0x88, 0x28, 0x66, 0xbe, 0xaa, 0x1e, 0x1c, 0x1d, 0xfa, 0x92, + 0x8f, 0x58, 0x2e, 0xe9, 0x28, 0x2d, 0x1b, 0xcd, 0x6e, 0x24, 0x22, 0xa1, 0x42, 0xbf, 0x88, 0x74, + 0x75, 0x4d, 0x5f, 0x2b, 0xf0, 0x34, 0x49, 0x84, 0x54, 0xec, 0x5c, 0x9f, 0xae, 0xde, 0x84, 0xb2, + 0x51, 0x2a, 0x4f, 0xca, 0x43, 0xe7, 0x97, 0x01, 0xf0, 0xf2, 0xf2, 0x39, 0x78, 0x09, 0x0c, 0x1e, + 0x12, 0x64, 0x23, 0xb7, 0x11, 0x18, 0x3c, 0xc4, 0x5d, 0x98, 0x97, 0x5c, 0xc6, 0x8c, 0x18, 0x36, + 0x72, 0xdb, 0x41, 0x99, 0x60, 0x0c, 0xcd, 0x77, 0x19, 0x3b, 0x24, 0x0d, 0x55, 0x54, 0x31, 0x5e, + 0x81, 0x96, 0xa4, 0x59, 0xc4, 0x24, 0x69, 0xaa, 0xaa, 0xce, 0x0a, 0xc2, 0x50, 0xc4, 0x22, 0x23, + 0xf3, 0x25, 0x41, 0x25, 0x05, 0x21, 0x17, 0x99, 0x24, 0x2d, 0x1b, 0xb9, 0xf3, 0x81, 0x8a, 0x0b, + 0x02, 0x4b, 0xe8, 0x41, 0xcc, 0xc8, 0x7f, 0x36, 0x72, 0x17, 0x02, 0x9d, 0xe1, 0x55, 0x68, 0xa7, + 0x34, 0x63, 0x89, 0xdc, 0xe7, 0x21, 0x59, 0x50, 0x4f, 0x5b, 0x28, 0x0b, 0x3b, 0x21, 0xb6, 0xa1, + 0x13, 0xb2, 0x7c, 0x98, 0xf1, 0xb4, 0x78, 0x3f, 0x69, 0xab, 0x21, 0x93, 0x25, 0xfc, 0x18, 0x60, + 0x98, 0x31, 0x2a, 0x59, 0xb8, 0x4f, 0x25, 0x01, 0x1b, 0xb9, 0x9d, 0x81, 0xe9, 0x95, 0x9a, 0x78, + 0x95, 0x26, 0xde, 0xab, 0x4a, 0xe8, 0xed, 0xe6, 0xe9, 0x8f, 0x3e, 0x0a, 0xda, 0xfa, 0xce, 0x96, + 0x2c, 0x00, 0x47, 0x69, 0x58, 0x01, 0x3a, 0xff, 0x0a, 0xd0, 0x77, 0xb6, 0xa4, 0x73, 0x0f, 0x7a, + 0x4f, 0x59, 0xcc, 0x24, 0xbb, 0x12, 0x3a, 0x60, 0xef, 0x8f, 0x58, 0x2e, 0x2f, 0xf5, 0x6e, 0x94, + 0x7a, 0x3b, 0x77, 0xa1, 0xfb, 0x9c, 0xc9, 0xd9, 0x7d, 0xda, 0x17, 0xe7, 0x23, 0xdc, 0x7e, 0xc1, + 0xf3, 0x9a, 0x46, 0x0c, 0xcd, 0x94, 0x46, 0x4c, 0xb7, 0xaa, 0x58, 0x89, 0xcd, 0x3f, 0x94, 0x1e, + 0x36, 0x02, 0x15, 0x17, 0xc0, 0xe3, 0x50, 0x1b, 0x68, 0x1c, 0x2b, 0xa3, 0x0f, 0x39, 0x8b, 0x43, + 0xd2, 0xb4, 0x1b, 0x85, 0x4d, 0x2a, 0x29, 0xaa, 0x22, 0x0b, 0xd9, 0xa5, 0x79, 0x2a, 0x71, 0xf6, + 0xe1, 0xd6, 0xcd, 0xe1, 0x69, 0x7c, 0xa2, 0x76, 0x45, 0x48, 0x1a, 0xeb, 0xd9, 0x65, 0x82, 0x07, + 0x00, 0x57, 0xeb, 0x4e, 0x0c, 0xbb, 0xe1, 0x76, 0x06, 0xd8, 0x2b, 0xf7, 0xdd, 0x9b, 0x40, 0x4c, + 0x74, 0x0d, 0x3e, 0x35, 0x61, 0xf1, 0xea, 0x68, 0x6b, 0x77, 0x07, 0xbf, 0x81, 0xe5, 0x27, 0xca, + 0x90, 0x89, 0x5d, 0xad, 0xa1, 0x98, 0x35, 0x35, 0x67, 0xfd, 0xf3, 0xb7, 0xdf, 0x5f, 0x8c, 0x9e, + 0x83, 0xfd, 0xa9, 0xcf, 0xef, 0x21, 0xda, 0xc0, 0x7b, 0xb0, 0xfc, 0x5a, 0x59, 0xf5, 0x17, 0xf4, + 0xca, 0x94, 0xe5, 0xcf, 0x8a, 0xef, 0xa8, 0xc2, 0x9b, 0x33, 0xf0, 0x11, 0x2c, 0xdf, 0x34, 0x1f, + 0xf7, 0x2b, 0xfc, 0x8c, 0xb5, 0x98, 0x39, 0xcb, 0x54, 0xb3, 0xba, 0x1b, 0x35, 0xb3, 0xf0, 0x1e, + 0x2c, 0x5e, 0x5b, 0x1d, 0xbc, 0x56, 0x4d, 0xa9, 0xdb, 0xa8, 0x5a, 0xa5, 0x34, 0x1e, 0xd7, 0xe1, + 0x47, 0xb0, 0x74, 0xdd, 0x74, 0xbc, 0x5e, 0x11, 0x6a, 0x37, 0xd1, 0x5c, 0x9d, 0x75, 0x9c, 0xc6, + 0x27, 0x4e, 0x5f, 0x4d, 0xba, 0x83, 0x7b, 0xd3, 0x93, 0xfc, 0x98, 0xe7, 0x72, 0xfb, 0xc1, 0xd7, + 0x73, 0x0b, 0x9d, 0x9d, 0x5b, 0xe8, 0xe7, 0xb9, 0x85, 0x4e, 0x2f, 0xac, 0xb9, 0xb3, 0x0b, 0x6b, + 0xee, 0xfb, 0x85, 0x35, 0x07, 0xfa, 0x5f, 0xb9, 0x8b, 0xde, 0xfe, 0x3f, 0x12, 0x19, 0x0b, 0xc5, + 0x50, 0x33, 0x1e, 0x8d, 0x37, 0x0f, 0x5a, 0x4a, 0xb0, 0xfb, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, + 0x04, 0xc2, 0xc7, 0xc8, 0x6a, 0x05, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// NavigationAPIClient is the client API for NavigationAPI service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NavigationAPIClient interface { + CreateNavigation(ctx context.Context, in *Navigation, opts ...grpc.CallOption) (*Navigation, error) + UpdateNavigation(ctx context.Context, in *Navigation, opts ...grpc.CallOption) (*emptypb.Empty, error) + DeleteNavigation(ctx context.Context, in *DeleteNavigationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + GetNavigation(ctx context.Context, in *GetNavigationRequest, opts ...grpc.CallOption) (*Navigation, error) + ListNavigation(ctx context.Context, in *ListNavigationRequest, opts ...grpc.CallOption) (*ListNavigationReply, error) +} + +type navigationAPIClient struct { + cc *grpc.ClientConn +} + +func NewNavigationAPIClient(cc *grpc.ClientConn) NavigationAPIClient { + return &navigationAPIClient{cc} +} + +func (c *navigationAPIClient) CreateNavigation(ctx context.Context, in *Navigation, opts ...grpc.CallOption) (*Navigation, error) { + out := new(Navigation) + err := c.cc.Invoke(ctx, "/api.v1.NavigationAPI/CreateNavigation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *navigationAPIClient) UpdateNavigation(ctx context.Context, in *Navigation, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/api.v1.NavigationAPI/UpdateNavigation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *navigationAPIClient) DeleteNavigation(ctx context.Context, in *DeleteNavigationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/api.v1.NavigationAPI/DeleteNavigation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *navigationAPIClient) GetNavigation(ctx context.Context, in *GetNavigationRequest, opts ...grpc.CallOption) (*Navigation, error) { + out := new(Navigation) + err := c.cc.Invoke(ctx, "/api.v1.NavigationAPI/GetNavigation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *navigationAPIClient) ListNavigation(ctx context.Context, in *ListNavigationRequest, opts ...grpc.CallOption) (*ListNavigationReply, error) { + out := new(ListNavigationReply) + err := c.cc.Invoke(ctx, "/api.v1.NavigationAPI/ListNavigation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NavigationAPIServer is the server API for NavigationAPI service. +type NavigationAPIServer interface { + CreateNavigation(context.Context, *Navigation) (*Navigation, error) + UpdateNavigation(context.Context, *Navigation) (*emptypb.Empty, error) + DeleteNavigation(context.Context, *DeleteNavigationRequest) (*emptypb.Empty, error) + GetNavigation(context.Context, *GetNavigationRequest) (*Navigation, error) + ListNavigation(context.Context, *ListNavigationRequest) (*ListNavigationReply, error) +} + +// UnimplementedNavigationAPIServer can be embedded to have forward compatible implementations. +type UnimplementedNavigationAPIServer struct { +} + +func (*UnimplementedNavigationAPIServer) CreateNavigation(ctx context.Context, req *Navigation) (*Navigation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNavigation not implemented") +} +func (*UnimplementedNavigationAPIServer) UpdateNavigation(ctx context.Context, req *Navigation) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNavigation not implemented") +} +func (*UnimplementedNavigationAPIServer) DeleteNavigation(ctx context.Context, req *DeleteNavigationRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteNavigation not implemented") +} +func (*UnimplementedNavigationAPIServer) GetNavigation(ctx context.Context, req *GetNavigationRequest) (*Navigation, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetNavigation not implemented") +} +func (*UnimplementedNavigationAPIServer) ListNavigation(ctx context.Context, req *ListNavigationRequest) (*ListNavigationReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNavigation not implemented") +} + +func RegisterNavigationAPIServer(s *grpc.Server, srv NavigationAPIServer) { + s.RegisterService(&_NavigationAPI_serviceDesc, srv) +} + +func _NavigationAPI_CreateNavigation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Navigation) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NavigationAPIServer).CreateNavigation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.v1.NavigationAPI/CreateNavigation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NavigationAPIServer).CreateNavigation(ctx, req.(*Navigation)) + } + return interceptor(ctx, in, info, handler) +} + +func _NavigationAPI_UpdateNavigation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Navigation) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NavigationAPIServer).UpdateNavigation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.v1.NavigationAPI/UpdateNavigation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NavigationAPIServer).UpdateNavigation(ctx, req.(*Navigation)) + } + return interceptor(ctx, in, info, handler) +} + +func _NavigationAPI_DeleteNavigation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteNavigationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NavigationAPIServer).DeleteNavigation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.v1.NavigationAPI/DeleteNavigation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NavigationAPIServer).DeleteNavigation(ctx, req.(*DeleteNavigationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NavigationAPI_GetNavigation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetNavigationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NavigationAPIServer).GetNavigation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.v1.NavigationAPI/GetNavigation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NavigationAPIServer).GetNavigation(ctx, req.(*GetNavigationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NavigationAPI_ListNavigation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListNavigationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NavigationAPIServer).ListNavigation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.v1.NavigationAPI/ListNavigation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NavigationAPIServer).ListNavigation(ctx, req.(*ListNavigationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _NavigationAPI_serviceDesc = grpc.ServiceDesc{ + ServiceName: "api.v1.NavigationAPI", + HandlerType: (*NavigationAPIServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateNavigation", + Handler: _NavigationAPI_CreateNavigation_Handler, + }, + { + MethodName: "UpdateNavigation", + Handler: _NavigationAPI_UpdateNavigation_Handler, + }, + { + MethodName: "DeleteNavigation", + Handler: _NavigationAPI_DeleteNavigation_Handler, + }, + { + MethodName: "GetNavigation", + Handler: _NavigationAPI_GetNavigation_Handler, + }, + { + MethodName: "ListNavigation", + Handler: _NavigationAPI_ListNavigation_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "api/v1/navigation.proto", +} + +func (m *Navigation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Navigation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Navigation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.UpdatedAt != nil { + n1, err1 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.UpdatedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.UpdatedAt):]) + if err1 != nil { + return 0, err1 + } + i -= n1 + i = encodeVarintNavigation(dAtA, i, uint64(n1)) + i-- + dAtA[i] = 0x5a + } + if m.CreatedAt != nil { + n2, err2 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.CreatedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.CreatedAt):]) + if err2 != nil { + return 0, err2 + } + i -= n2 + i = encodeVarintNavigation(dAtA, i, uint64(n2)) + i-- + dAtA[i] = 0x52 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintNavigation(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x4a + } + if m.ParentId != 0 { + i = encodeVarintNavigation(dAtA, i, uint64(m.ParentId)) + i-- + dAtA[i] = 0x40 + } + if m.Enable { + i-- + if m.Enable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + } + if m.Sort != 0 { + i = encodeVarintNavigation(dAtA, i, uint64(m.Sort)) + i-- + dAtA[i] = 0x30 + } + if len(m.Color) > 0 { + i -= len(m.Color) + copy(dAtA[i:], m.Color) + i = encodeVarintNavigation(dAtA, i, uint64(len(m.Color))) + i-- + dAtA[i] = 0x2a + } + if len(m.Target) > 0 { + i -= len(m.Target) + copy(dAtA[i:], m.Target) + i = encodeVarintNavigation(dAtA, i, uint64(len(m.Target))) + i-- + dAtA[i] = 0x22 + } + if len(m.Href) > 0 { + i -= len(m.Href) + copy(dAtA[i:], m.Href) + i = encodeVarintNavigation(dAtA, i, uint64(len(m.Href))) + i-- + dAtA[i] = 0x1a + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintNavigation(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0x12 + } + if m.Id != 0 { + i = encodeVarintNavigation(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DeleteNavigationRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeleteNavigationRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DeleteNavigationRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Id) > 0 { + dAtA4 := make([]byte, len(m.Id)*10) + var j3 int + for _, num1 := range m.Id { + num := uint64(num1) + for num >= 1<<7 { + dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j3++ + } + dAtA4[j3] = uint8(num) + j3++ + } + i -= j3 + copy(dAtA[i:], dAtA4[:j3]) + i = encodeVarintNavigation(dAtA, i, uint64(j3)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetNavigationRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetNavigationRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetNavigationRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintNavigation(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListNavigationRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListNavigationRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ListNavigationRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Order) > 0 { + i -= len(m.Order) + copy(dAtA[i:], m.Order) + i = encodeVarintNavigation(dAtA, i, uint64(len(m.Order))) + i-- + dAtA[i] = 0x2a + } + if len(m.Field) > 0 { + for iNdEx := len(m.Field) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Field[iNdEx]) + copy(dAtA[i:], m.Field[iNdEx]) + i = encodeVarintNavigation(dAtA, i, uint64(len(m.Field[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } + if len(m.Wd) > 0 { + i -= len(m.Wd) + copy(dAtA[i:], m.Wd) + i = encodeVarintNavigation(dAtA, i, uint64(len(m.Wd))) + i-- + dAtA[i] = 0x1a + } + if m.Size_ != 0 { + i = encodeVarintNavigation(dAtA, i, uint64(m.Size_)) + i-- + dAtA[i] = 0x10 + } + if m.Page != 0 { + i = encodeVarintNavigation(dAtA, i, uint64(m.Page)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListNavigationReply) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListNavigationReply) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ListNavigationReply) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Navigation) > 0 { + for iNdEx := len(m.Navigation) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Navigation[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintNavigation(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Total != 0 { + i = encodeVarintNavigation(dAtA, i, uint64(m.Total)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintNavigation(dAtA []byte, offset int, v uint64) int { + offset -= sovNavigation(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Navigation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovNavigation(uint64(m.Id)) + } + l = len(m.Title) + if l > 0 { + n += 1 + l + sovNavigation(uint64(l)) + } + l = len(m.Href) + if l > 0 { + n += 1 + l + sovNavigation(uint64(l)) + } + l = len(m.Target) + if l > 0 { + n += 1 + l + sovNavigation(uint64(l)) + } + l = len(m.Color) + if l > 0 { + n += 1 + l + sovNavigation(uint64(l)) + } + if m.Sort != 0 { + n += 1 + sovNavigation(uint64(m.Sort)) + } + if m.Enable { + n += 2 + } + if m.ParentId != 0 { + n += 1 + sovNavigation(uint64(m.ParentId)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovNavigation(uint64(l)) + } + if m.CreatedAt != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.CreatedAt) + n += 1 + l + sovNavigation(uint64(l)) + } + if m.UpdatedAt != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.UpdatedAt) + n += 1 + l + sovNavigation(uint64(l)) + } + return n +} + +func (m *DeleteNavigationRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Id) > 0 { + l = 0 + for _, e := range m.Id { + l += sovNavigation(uint64(e)) + } + n += 1 + sovNavigation(uint64(l)) + l + } + return n +} + +func (m *GetNavigationRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovNavigation(uint64(m.Id)) + } + return n +} + +func (m *ListNavigationRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Page != 0 { + n += 1 + sovNavigation(uint64(m.Page)) + } + if m.Size_ != 0 { + n += 1 + sovNavigation(uint64(m.Size_)) + } + l = len(m.Wd) + if l > 0 { + n += 1 + l + sovNavigation(uint64(l)) + } + if len(m.Field) > 0 { + for _, s := range m.Field { + l = len(s) + n += 1 + l + sovNavigation(uint64(l)) + } + } + l = len(m.Order) + if l > 0 { + n += 1 + l + sovNavigation(uint64(l)) + } + return n +} + +func (m *ListNavigationReply) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Total != 0 { + n += 1 + sovNavigation(uint64(m.Total)) + } + if len(m.Navigation) > 0 { + for _, e := range m.Navigation { + l = e.Size() + n += 1 + l + sovNavigation(uint64(l)) + } + } + return n +} + +func sovNavigation(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozNavigation(x uint64) (n int) { + return sovNavigation(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Navigation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Navigation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Navigation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Href", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Href = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Target = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Color", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Color = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Sort", wireType) + } + m.Sort = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Sort |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Enable = bool(v != 0) + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ParentId", wireType) + } + m.ParentId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ParentId |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedAt == nil { + m.CreatedAt = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.CreatedAt, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdatedAt == nil { + m.UpdatedAt = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.UpdatedAt, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNavigation(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthNavigation + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeleteNavigationRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeleteNavigationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeleteNavigationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Id = append(m.Id, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Id) == 0 { + m.Id = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Id = append(m.Id, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + default: + iNdEx = preIndex + skippy, err := skipNavigation(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthNavigation + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetNavigationRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetNavigationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetNavigationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipNavigation(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthNavigation + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListNavigationRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListNavigationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListNavigationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Page", wireType) + } + m.Page = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Page |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Size_", wireType) + } + m.Size_ = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Size_ |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Wd", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Wd = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field = append(m.Field, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Order = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNavigation(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthNavigation + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListNavigationReply) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListNavigationReply: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListNavigationReply: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) + } + m.Total = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Total |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Navigation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNavigation + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNavigation + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthNavigation + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Navigation = append(m.Navigation, &Navigation{}) + if err := m.Navigation[len(m.Navigation)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipNavigation(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthNavigation + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipNavigation(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowNavigation + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowNavigation + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowNavigation + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthNavigation + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupNavigation + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthNavigation + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthNavigation = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowNavigation = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupNavigation = fmt.Errorf("proto: unexpected end of group") +) diff --git a/api/v1/navigation.pb.gw.go b/api/v1/navigation.pb.gw.go new file mode 100644 index 0000000..6377297 --- /dev/null +++ b/api/v1/navigation.pb.gw.go @@ -0,0 +1,499 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: api/v1/navigation.proto + +/* +Package v1 is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package v1 + +import ( + "context" + "io" + "net/http" + + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage +var _ = metadata.Join + +func request_NavigationAPI_CreateNavigation_0(ctx context.Context, marshaler runtime.Marshaler, client NavigationAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq Navigation + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNavigation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NavigationAPI_CreateNavigation_0(ctx context.Context, marshaler runtime.Marshaler, server NavigationAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq Navigation + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateNavigation(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NavigationAPI_UpdateNavigation_0(ctx context.Context, marshaler runtime.Marshaler, client NavigationAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq Navigation + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateNavigation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NavigationAPI_UpdateNavigation_0(ctx context.Context, marshaler runtime.Marshaler, server NavigationAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq Navigation + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateNavigation(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NavigationAPI_DeleteNavigation_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_NavigationAPI_DeleteNavigation_0(ctx context.Context, marshaler runtime.Marshaler, client NavigationAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNavigationRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NavigationAPI_DeleteNavigation_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteNavigation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NavigationAPI_DeleteNavigation_0(ctx context.Context, marshaler runtime.Marshaler, server NavigationAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNavigationRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NavigationAPI_DeleteNavigation_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteNavigation(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NavigationAPI_GetNavigation_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_NavigationAPI_GetNavigation_0(ctx context.Context, marshaler runtime.Marshaler, client NavigationAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNavigationRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NavigationAPI_GetNavigation_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetNavigation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NavigationAPI_GetNavigation_0(ctx context.Context, marshaler runtime.Marshaler, server NavigationAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNavigationRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NavigationAPI_GetNavigation_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetNavigation(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NavigationAPI_ListNavigation_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_NavigationAPI_ListNavigation_0(ctx context.Context, marshaler runtime.Marshaler, client NavigationAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNavigationRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NavigationAPI_ListNavigation_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNavigation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NavigationAPI_ListNavigation_0(ctx context.Context, marshaler runtime.Marshaler, server NavigationAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNavigationRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NavigationAPI_ListNavigation_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNavigation(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterNavigationAPIHandlerServer registers the http handlers for service NavigationAPI to "mux". +// UnaryRPC :call NavigationAPIServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterNavigationAPIHandlerFromEndpoint instead. +func RegisterNavigationAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server NavigationAPIServer) error { + + mux.Handle("POST", pattern_NavigationAPI_CreateNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NavigationAPI_CreateNavigation_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_CreateNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_NavigationAPI_UpdateNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NavigationAPI_UpdateNavigation_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_UpdateNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_NavigationAPI_DeleteNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NavigationAPI_DeleteNavigation_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_DeleteNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NavigationAPI_GetNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NavigationAPI_GetNavigation_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_GetNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NavigationAPI_ListNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NavigationAPI_ListNavigation_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_ListNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterNavigationAPIHandlerFromEndpoint is same as RegisterNavigationAPIHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterNavigationAPIHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterNavigationAPIHandler(ctx, mux, conn) +} + +// RegisterNavigationAPIHandler registers the http handlers for service NavigationAPI to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterNavigationAPIHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterNavigationAPIHandlerClient(ctx, mux, NewNavigationAPIClient(conn)) +} + +// RegisterNavigationAPIHandlerClient registers the http handlers for service NavigationAPI +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "NavigationAPIClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "NavigationAPIClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "NavigationAPIClient" to call the correct interceptors. +func RegisterNavigationAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client NavigationAPIClient) error { + + mux.Handle("POST", pattern_NavigationAPI_CreateNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NavigationAPI_CreateNavigation_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_CreateNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_NavigationAPI_UpdateNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NavigationAPI_UpdateNavigation_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_UpdateNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_NavigationAPI_DeleteNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NavigationAPI_DeleteNavigation_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_DeleteNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NavigationAPI_GetNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NavigationAPI_GetNavigation_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_GetNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NavigationAPI_ListNavigation_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NavigationAPI_ListNavigation_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_NavigationAPI_ListNavigation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_NavigationAPI_CreateNavigation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "navigation"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_NavigationAPI_UpdateNavigation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "navigation"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_NavigationAPI_DeleteNavigation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "navigation"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_NavigationAPI_GetNavigation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "navigation"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_NavigationAPI_ListNavigation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "navigation", "list"}, "", runtime.AssumeColonVerbOpt(true))) +) + +var ( + forward_NavigationAPI_CreateNavigation_0 = runtime.ForwardResponseMessage + + forward_NavigationAPI_UpdateNavigation_0 = runtime.ForwardResponseMessage + + forward_NavigationAPI_DeleteNavigation_0 = runtime.ForwardResponseMessage + + forward_NavigationAPI_GetNavigation_0 = runtime.ForwardResponseMessage + + forward_NavigationAPI_ListNavigation_0 = runtime.ForwardResponseMessage +) diff --git a/api/v1/navigation.proto b/api/v1/navigation.proto new file mode 100644 index 0000000..012a52b --- /dev/null +++ b/api/v1/navigation.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +import "google/protobuf/timestamp.proto"; +import "gogoproto/gogo.proto"; +// import "validate/validate.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/empty.proto"; + +package api.v1; + +option go_package = "moredoc/api/v1;v1"; +option java_multiple_files = true; +option java_package = "api.v1"; + +message Navigation { + int64 id = 1; + string title = 2; + string href = 3; + string target = 4; + string color = 5; + int32 sort = 6; + bool enable = 7; + int64 parent_id = 8; + string description = 9; + google.protobuf.Timestamp created_at = 10 [ (gogoproto.stdtime) = true ]; + google.protobuf.Timestamp updated_at = 11 [ (gogoproto.stdtime) = true ]; +} + +message DeleteNavigationRequest { repeated int64 id = 1; } + +message GetNavigationRequest { int64 id = 1; } + +message ListNavigationRequest { + int64 page = 1; + int64 size = 2; + string wd = 3; + repeated string field = 4; + string order = 5; +} + +message ListNavigationReply { + int64 total = 1; + repeated Navigation navigation = 2; +} + +service NavigationAPI { + rpc CreateNavigation(Navigation) returns (Navigation) { + option (google.api.http) = { + post : '/api/v1/navigation', + body : '*', + }; + } + + rpc UpdateNavigation(Navigation) returns (google.protobuf.Empty) { + option (google.api.http) = { + put : '/api/v1/navigation', + body : '*', + }; + } + + rpc DeleteNavigation(DeleteNavigationRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete : '/api/v1/navigation', + }; + } + + rpc GetNavigation(GetNavigationRequest) returns (Navigation) { + option (google.api.http) = { + get : '/api/v1/navigation', + }; + } + + rpc ListNavigation(ListNavigationRequest) returns (ListNavigationReply) { + option (google.api.http) = { + get : '/api/v1/navigation/list', + }; + } +} \ No newline at end of file diff --git a/biz/navigation.go b/biz/navigation.go new file mode 100644 index 0000000..167a900 --- /dev/null +++ b/biz/navigation.go @@ -0,0 +1,142 @@ +package biz + +import ( + "context" + "strings" + + pb "moredoc/api/v1" + "moredoc/middleware/auth" + "moredoc/model" + "moredoc/util" + + "go.uber.org/zap" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/types/known/emptypb" + "gorm.io/gorm" +) + +type NavigationAPIService struct { + pb.UnimplementedNavigationAPIServer + dbModel *model.DBModel + logger *zap.Logger +} + +func NewNavigationAPIService(dbModel *model.DBModel, logger *zap.Logger) (service *NavigationAPIService) { + return &NavigationAPIService{dbModel: dbModel, logger: logger.Named("NavigationAPIService")} +} + +func (s *NavigationAPIService) checkPermission(ctx context.Context) (userClaims *auth.UserClaims, err error) { + return checkGRPCPermission(s.dbModel, ctx) +} + +func (s *NavigationAPIService) CreateNavigation(ctx context.Context, req *pb.Navigation) (*pb.Navigation, error) { + _, err := s.checkPermission(ctx) + if err != nil { + return nil, err + } + + nav := &model.Navigation{} + err = util.CopyStruct(req, nav) + if err != nil { + s.logger.Error("CopyStruct", zap.Error(err)) + return nil, status.Errorf(codes.InvalidArgument, err.Error()) + } + + err = s.dbModel.CreateNavigation(nav) + if err != nil { + s.logger.Error("CreateNavigation", zap.Error(err)) + return nil, status.Errorf(codes.Internal, err.Error()) + } + + res := &pb.Navigation{} + err = util.CopyStruct(nav, res) + if err != nil { + s.logger.Error("CopyStruct", zap.Error(err)) + return nil, status.Errorf(codes.Internal, err.Error()) + } + + return res, nil +} + +func (s *NavigationAPIService) UpdateNavigation(ctx context.Context, req *pb.Navigation) (*emptypb.Empty, error) { + _, err := s.checkPermission(ctx) + if err != nil { + return nil, err + } + + nav := &model.Navigation{} + err = util.CopyStruct(req, nav) + if err != nil { + s.logger.Error("CopyStruct", zap.Error(err)) + return nil, status.Errorf(codes.InvalidArgument, err.Error()) + } + + err = s.dbModel.UpdateNavigation(nav) + if err != nil { + s.logger.Error("UpdateNavigation", zap.Error(err)) + return nil, status.Errorf(codes.Internal, err.Error()) + } + + return &emptypb.Empty{}, nil +} + +func (s *NavigationAPIService) DeleteNavigation(ctx context.Context, req *pb.DeleteNavigationRequest) (*emptypb.Empty, error) { + _, err := s.checkPermission(ctx) + if err != nil { + return nil, err + } + + err = s.dbModel.DeleteNavigation(req.Id) + if err != nil { + s.logger.Error("DeleteNavigation", zap.Error(err)) + return nil, status.Errorf(codes.Internal, err.Error()) + } + + return &emptypb.Empty{}, nil +} + +func (s *NavigationAPIService) GetNavigation(ctx context.Context, req *pb.GetNavigationRequest) (*pb.Navigation, error) { + nav, err := s.dbModel.GetNavigation(req.Id) + if err != nil && err != gorm.ErrRecordNotFound { + s.logger.Error("GetNavigation", zap.Error(err)) + return nil, status.Errorf(codes.Internal, err.Error()) + } + + res := &pb.Navigation{} + err = util.CopyStruct(nav, res) + if err != nil { + s.logger.Error("CopyStruct", zap.Error(err)) + return nil, status.Errorf(codes.Internal, err.Error()) + } + + return res, nil +} + +func (s *NavigationAPIService) ListNavigation(ctx context.Context, req *pb.ListNavigationRequest) (*pb.ListNavigationReply, error) { + opt := &model.OptionGetNavigationList{ + Page: int(req.Page), + Size: int(req.Size_), + WithCount: true, + SelectFields: req.Field, + Sort: strings.Split(req.Order, ","), + } + + navs, total, err := s.dbModel.GetNavigationList(opt) + if err != nil { + s.logger.Error("GetNavigationList", zap.Error(err)) + return nil, status.Errorf(codes.Internal, err.Error()) + } + + res := &pb.ListNavigationReply{ + Total: total, + } + + err = util.CopyStruct(navs, &res.Navigation) + if err != nil { + s.logger.Error("CopyStruct", zap.Error(err)) + return nil, status.Errorf(codes.Internal, err.Error()) + } + + return res, nil +} diff --git a/model/navigation.go b/model/navigation.go new file mode 100644 index 0000000..542e98f --- /dev/null +++ b/model/navigation.go @@ -0,0 +1,125 @@ +package model + +import ( + "time" + + "go.uber.org/zap" + "gorm.io/gorm" +) + +type Navigation struct { + Id int64 `form:"id" json:"id,omitempty" gorm:"primaryKey;autoIncrement;column:id;comment:;"` + Title string `form:"title" json:"title,omitempty" gorm:"column:title;type:varchar(255);size:255;comment:链接名称;"` + Href string `form:"href" json:"href,omitempty" gorm:"column:href;type:varchar(255);size:255;comment:跳转链接;"` + Target string `form:"target" json:"target,omitempty" gorm:"column:target;type:varchar(16);size:16;comment:打开方式;"` + Color string `form:"color" json:"color,omitempty" gorm:"column:color;type:varchar(16);size:16;comment:链接颜色;"` + Sort int `form:"sort" json:"sort,omitempty" gorm:"column:sort;type:int(11);size:11;default:0;comment:排序,值越大越靠前;"` + Enable *bool `form:"enable" json:"enable,omitempty" gorm:"column:enable;type:int(11);size:11;default:0;comment:是否启用;"` + ParentId int64 `form:"parent_id" json:"parent_id,omitempty" gorm:"column:parent_id;type:int(11);size:11;default:0;comment:上级id;"` + Description string `form:"description" json:"description,omitempty" gorm:"column:description;type:varchar(1024);size:1024;comment:描述;"` + CreatedAt *time.Time `form:"created_at" json:"created_at,omitempty" gorm:"column:created_at;type:datetime;comment:创建时间;"` + UpdatedAt *time.Time `form:"updated_at" json:"updated_at,omitempty" gorm:"column:updated_at;type:datetime;comment:更新时间;"` +} + +func (Navigation) TableName() string { + return tablePrefix + "navigation" +} + +// CreateNavigation 创建Navigation +func (m *DBModel) CreateNavigation(navigation *Navigation) (err error) { + err = m.db.Create(navigation).Error + if err != nil { + m.logger.Error("CreateNavigation", zap.Error(err)) + return + } + return +} + +// UpdateNavigation 更新Navigation,如果需要更新指定字段,则请指定updateFields参数 +func (m *DBModel) UpdateNavigation(navigation *Navigation, updateFields ...string) (err error) { + db := m.db.Model(navigation) + tableName := Navigation{}.TableName() + + updateFields = m.FilterValidFields(tableName, updateFields...) + if len(updateFields) > 0 { // 更新指定字段 + db = db.Select(updateFields) + } else { // 更新全部字段,包括零值字段 + db = db.Select(m.GetTableFields(tableName)) + } + + err = db.Where("id = ?", navigation.Id).Updates(navigation).Error + if err != nil { + m.logger.Error("UpdateNavigation", zap.Error(err)) + } + return +} + +// GetNavigation 根据id获取Navigation +func (m *DBModel) GetNavigation(id interface{}, fields ...string) (navigation Navigation, err error) { + db := m.db + + fields = m.FilterValidFields(Navigation{}.TableName(), fields...) + if len(fields) > 0 { + db = db.Select(fields) + } + + err = db.Where("id = ?", id).First(&navigation).Error + return +} + +type OptionGetNavigationList struct { + Page int + Size int + WithCount bool // 是否返回总数 + Ids []interface{} // id列表 + SelectFields []string // 查询字段 + QueryRange map[string][2]interface{} // map[field][]{min,max} + QueryIn map[string][]interface{} // map[field][]{value1,value2,...} + QueryLike map[string][]interface{} // map[field][]{value1,value2,...} + Sort []string +} + +// GetNavigationList 获取Navigation列表 +func (m *DBModel) GetNavigationList(opt *OptionGetNavigationList) (navigationList []Navigation, total int64, err error) { + tableName := Navigation{}.TableName() + db := m.db.Model(&Navigation{}) + db = m.generateQueryRange(db, tableName, opt.QueryRange) + db = m.generateQueryIn(db, tableName, opt.QueryIn) + db = m.generateQueryLike(db, tableName, opt.QueryLike) + + if len(opt.Ids) > 0 { + db = db.Where("id in (?)", opt.Ids) + } + + if opt.WithCount { + err = db.Count(&total).Error + if err != nil { + m.logger.Error("GetNavigationList", zap.Error(err)) + return + } + } + + opt.SelectFields = m.FilterValidFields(tableName, opt.SelectFields...) + if len(opt.SelectFields) > 0 { + db = db.Select(opt.SelectFields) + } + + db = m.generateQuerySort(db, tableName, opt.Sort) + + db = db.Offset((opt.Page - 1) * opt.Size).Limit(opt.Size) + + err = db.Find(&navigationList).Error + if err != nil && err != gorm.ErrRecordNotFound { + m.logger.Error("GetNavigationList", zap.Error(err)) + } + return +} + +// DeleteNavigation 删除数据 +func (m *DBModel) DeleteNavigation(ids []int64) (err error) { + err = m.db.Where("id in (?)", ids).Delete(&Navigation{}).Error + if err != nil { + m.logger.Error("DeleteNavigation", zap.Error(err)) + } + return +} diff --git a/web/api/navigation.js b/web/api/navigation.js new file mode 100644 index 0000000..b929d28 --- /dev/null +++ b/web/api/navigation.js @@ -0,0 +1,43 @@ +import service from '~/utils/request' + +export const createNavigation = (data) => { + return service({ + url: '/api/v1/navigation', + method: 'post', + data, + }) +} + +export const updateNavigation = (data) => { + return service({ + url: '/api/v1/navigation', + method: 'put', + data, + }) +} + +export const deleteNavigation = (params) => { + return service({ + url: '/api/v1/navigation', + method: 'delete', + params, + }) +} + +export const getNavigation = (params) => { + return service({ + url: '/api/v1/navigation', + method: 'get', + params, + }) +} + +export const listNavigation = (params) => { + return service({ + url: '/api/v1/navigation/list', + method: 'get', + params, + }) +} + +