dev
truthhun 11 months ago
parent d9e3e450bd
commit c5a50f31d5

File diff suppressed because it is too large Load Diff

@ -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
)

@ -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',
};
}
}

@ -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
}

@ -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
}

@ -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,
})
}
Loading…
Cancel
Save