package grpcreflect import ( refv1 "google.golang.org/grpc/reflection/grpc_reflection_v1" refv1alpha "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" ) func toV1Request(v1alpha *refv1alpha.ServerReflectionRequest) *refv1.ServerReflectionRequest { var v1 refv1.ServerReflectionRequest v1.Host = v1alpha.Host switch mr := v1alpha.MessageRequest.(type) { case *refv1alpha.ServerReflectionRequest_FileByFilename: v1.MessageRequest = &refv1.ServerReflectionRequest_FileByFilename{ FileByFilename: mr.FileByFilename, } case *refv1alpha.ServerReflectionRequest_FileContainingSymbol: v1.MessageRequest = &refv1.ServerReflectionRequest_FileContainingSymbol{ FileContainingSymbol: mr.FileContainingSymbol, } case *refv1alpha.ServerReflectionRequest_FileContainingExtension: if mr.FileContainingExtension != nil { v1.MessageRequest = &refv1.ServerReflectionRequest_FileContainingExtension{ FileContainingExtension: &refv1.ExtensionRequest{ ContainingType: mr.FileContainingExtension.GetContainingType(), ExtensionNumber: mr.FileContainingExtension.GetExtensionNumber(), }, } } case *refv1alpha.ServerReflectionRequest_AllExtensionNumbersOfType: v1.MessageRequest = &refv1.ServerReflectionRequest_AllExtensionNumbersOfType{ AllExtensionNumbersOfType: mr.AllExtensionNumbersOfType, } case *refv1alpha.ServerReflectionRequest_ListServices: v1.MessageRequest = &refv1.ServerReflectionRequest_ListServices{ ListServices: mr.ListServices, } default: // no value set } return &v1 } func toV1AlphaRequest(v1 *refv1.ServerReflectionRequest) *refv1alpha.ServerReflectionRequest { var v1alpha refv1alpha.ServerReflectionRequest v1alpha.Host = v1.Host switch mr := v1.MessageRequest.(type) { case *refv1.ServerReflectionRequest_FileByFilename: if mr != nil { v1alpha.MessageRequest = &refv1alpha.ServerReflectionRequest_FileByFilename{ FileByFilename: mr.FileByFilename, } } case *refv1.ServerReflectionRequest_FileContainingSymbol: if mr != nil { v1alpha.MessageRequest = &refv1alpha.ServerReflectionRequest_FileContainingSymbol{ FileContainingSymbol: mr.FileContainingSymbol, } } case *refv1.ServerReflectionRequest_FileContainingExtension: if mr != nil { v1alpha.MessageRequest = &refv1alpha.ServerReflectionRequest_FileContainingExtension{ FileContainingExtension: &refv1alpha.ExtensionRequest{ ContainingType: mr.FileContainingExtension.GetContainingType(), ExtensionNumber: mr.FileContainingExtension.GetExtensionNumber(), }, } } case *refv1.ServerReflectionRequest_AllExtensionNumbersOfType: if mr != nil { v1alpha.MessageRequest = &refv1alpha.ServerReflectionRequest_AllExtensionNumbersOfType{ AllExtensionNumbersOfType: mr.AllExtensionNumbersOfType, } } case *refv1.ServerReflectionRequest_ListServices: if mr != nil { v1alpha.MessageRequest = &refv1alpha.ServerReflectionRequest_ListServices{ ListServices: mr.ListServices, } } default: // no value set } return &v1alpha } func toV1Response(v1alpha *refv1alpha.ServerReflectionResponse) *refv1.ServerReflectionResponse { var v1 refv1.ServerReflectionResponse v1.ValidHost = v1alpha.ValidHost if v1alpha.OriginalRequest != nil { v1.OriginalRequest = toV1Request(v1alpha.OriginalRequest) } switch mr := v1alpha.MessageResponse.(type) { case *refv1alpha.ServerReflectionResponse_FileDescriptorResponse: if mr != nil { v1.MessageResponse = &refv1.ServerReflectionResponse_FileDescriptorResponse{ FileDescriptorResponse: &refv1.FileDescriptorResponse{ FileDescriptorProto: mr.FileDescriptorResponse.GetFileDescriptorProto(), }, } } case *refv1alpha.ServerReflectionResponse_AllExtensionNumbersResponse: if mr != nil { v1.MessageResponse = &refv1.ServerReflectionResponse_AllExtensionNumbersResponse{ AllExtensionNumbersResponse: &refv1.ExtensionNumberResponse{ BaseTypeName: mr.AllExtensionNumbersResponse.GetBaseTypeName(), ExtensionNumber: mr.AllExtensionNumbersResponse.GetExtensionNumber(), }, } } case *refv1alpha.ServerReflectionResponse_ListServicesResponse: if mr != nil { svcs := make([]*refv1.ServiceResponse, len(mr.ListServicesResponse.GetService())) for i, svc := range mr.ListServicesResponse.GetService() { svcs[i] = &refv1.ServiceResponse{ Name: svc.GetName(), } } v1.MessageResponse = &refv1.ServerReflectionResponse_ListServicesResponse{ ListServicesResponse: &refv1.ListServiceResponse{ Service: svcs, }, } } case *refv1alpha.ServerReflectionResponse_ErrorResponse: if mr != nil { v1.MessageResponse = &refv1.ServerReflectionResponse_ErrorResponse{ ErrorResponse: &refv1.ErrorResponse{ ErrorCode: mr.ErrorResponse.GetErrorCode(), ErrorMessage: mr.ErrorResponse.GetErrorMessage(), }, } } default: // no value set } return &v1 }