From 9935853300403150885aa12b232d6f0115b44268 Mon Sep 17 00:00:00 2001 From: Andrea Ella Remoreras Date: Fri, 1 Aug 2025 13:38:07 +0800 Subject: [PATCH 1/2] feat: updated grpc implementation --- Makefile | 2 +- go.mod | 17 +- go.sum | 59 ++-- .../http/grpc/RecordCommandController.go | 5 +- .../http/grpc/RecordQueryController.go | 5 +- .../interfaces/http/grpc/pb/record.pb.go | 331 +++--------------- .../interfaces/http/grpc/pb/record.proto | 2 + .../interfaces/http/grpc/pb/record_grpc.pb.go | 223 ++++++++++++ 8 files changed, 330 insertions(+), 314 deletions(-) create mode 100644 module/record/interfaces/http/grpc/pb/record_grpc.pb.go diff --git a/Makefile b/Makefile index 647e27e..e02c230 100644 --- a/Makefile +++ b/Makefile @@ -65,4 +65,4 @@ migrate-force: migrate -path infrastructures/database/mysql/migrations -database "mysql://${DB_USERNAME}:${DB_PASSWORD}@tcp(${DB_HOST}:${DB_PORT})/${DB_DATABASE}" force ${STEPS} proto-record: - protoc --go_out=plugins=grpc:. --go_opt=paths=source_relative module/record/interfaces/http/grpc/pb/record.proto \ No newline at end of file + protoc --go_out=. --go-grpc_out=. --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative module/record/interfaces/http/grpc/pb/record.proto \ No newline at end of file diff --git a/go.mod b/go.mod index 8ab7bae..ad93819 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module gomora -go 1.21 +go 1.23 + +toolchain go1.23.11 require ( github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 @@ -10,13 +12,12 @@ require ( github.com/go-playground/validator/v10 v10.16.0 github.com/go-sql-driver/mysql v1.7.0 github.com/golang-jwt/jwt/v5 v5.2.1 - github.com/golang/protobuf v1.5.3 github.com/jmoiron/sqlx v1.3.5 github.com/joho/godotenv v1.5.1 github.com/segmentio/ksuid v1.0.4 - golang.org/x/crypto v0.21.0 - google.golang.org/grpc v1.53.0 - google.golang.org/protobuf v1.30.0 + golang.org/x/crypto v0.33.0 + google.golang.org/grpc v1.72.0 + google.golang.org/protobuf v1.36.6 ) require ( @@ -34,8 +35,8 @@ require ( github.com/lestrrat-go/option v1.0.1 // indirect github.com/segmentio/asm v1.2.0 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/net v0.35.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/text v0.22.0 // indirect google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect ) diff --git a/go.sum b/go.sum index 8f1d68e..d735be6 100644 --- a/go.sum +++ b/go.sum @@ -13,6 +13,10 @@ github.com/go-chi/cors v1.2.1 h1:xEC8UT3Rlp2QuWNEr4Fs/c2EAGVKBwy/1vHx3bppil4= github.com/go-chi/cors v1.2.1/go.mod h1:sSbTewc+6wYHBBCW7ytsFSn836hqM7JxpglAy2Vzc58= github.com/go-chi/jwtauth/v5 v5.3.1 h1:1ePWrjVctvp1tyBq5b/2ER8Th/+RbYc7x4qNsc5rh5A= github.com/go-chi/jwtauth/v5 v5.3.1/go.mod h1:6Fl2RRmWXs3tJYE1IQGX81FsPoGqDwq9c15j52R5q80= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -28,12 +32,12 @@ github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= @@ -79,30 +83,39 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= +go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM= +google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/module/record/interfaces/http/grpc/RecordCommandController.go b/module/record/interfaces/http/grpc/RecordCommandController.go index 13ccc2b..9da5062 100644 --- a/module/record/interfaces/http/grpc/RecordCommandController.go +++ b/module/record/interfaces/http/grpc/RecordCommandController.go @@ -5,9 +5,9 @@ import ( "fmt" "time" - "github.com/golang/protobuf/ptypes" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + "google.golang.org/protobuf/types/known/timestamppb" "gomora/internal/errors" "gomora/module/record/application" @@ -18,6 +18,7 @@ import ( // RecordCommandController handles the grpc record command requests type RecordCommandController struct { application.RecordCommandServiceInterface + grpcPB.UnimplementedRecordCommandServiceServer } // CreateRecord creates a new record @@ -45,7 +46,7 @@ func (controller *RecordCommandController) CreateRecord(ctx context.Context, req return nil, st.Err() } - createProtoTime, _ := ptypes.TimestampProto(time.Now()) + createProtoTime := timestamppb.New(time.Now()) return &grpcPB.RecordResponse{ Id: res.ID, diff --git a/module/record/interfaces/http/grpc/RecordQueryController.go b/module/record/interfaces/http/grpc/RecordQueryController.go index 7b024e9..a55b2af 100644 --- a/module/record/interfaces/http/grpc/RecordQueryController.go +++ b/module/record/interfaces/http/grpc/RecordQueryController.go @@ -4,9 +4,9 @@ import ( "context" "fmt" - "github.com/golang/protobuf/ptypes" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + "google.golang.org/protobuf/types/known/timestamppb" "gomora/internal/errors" "gomora/module/record/application" @@ -16,6 +16,7 @@ import ( // RecordQueryController handles the grpc record query requests type RecordQueryController struct { application.RecordQueryServiceInterface + grpcPB.UnimplementedRecordQueryServiceServer } // GetRecordByID retrieves the record id from the proto @@ -38,7 +39,7 @@ func (controller *RecordQueryController) GetRecordByID(ctx context.Context, req return nil, st.Err() } - createProtoTime, _ := ptypes.TimestampProto(res.CreatedAt) + createProtoTime := timestamppb.New(res.CreatedAt) return &grpcPB.RecordResponse{ Id: res.ID, diff --git a/module/record/interfaces/http/grpc/pb/record.pb.go b/module/record/interfaces/http/grpc/pb/record.pb.go index 125d6e6..551566c 100644 --- a/module/record/interfaces/http/grpc/pb/record.pb.go +++ b/module/record/interfaces/http/grpc/pb/record.pb.go @@ -1,22 +1,18 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.25.0 -// protoc v3.12.3 +// protoc-gen-go v1.36.6 +// protoc v5.29.3 // source: module/record/interfaces/http/grpc/pb/record.proto package record import ( - context "context" - proto "github.com/golang/protobuf/proto" - timestamp "github.com/golang/protobuf/ptypes/timestamp" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -26,26 +22,19 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// This is a compile-time assertion that a sufficiently up-to-date version -// of the legacy proto package is being used. -const _ = proto.ProtoPackageIsVersion4 - type CreateRecordRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateRecordRequest) Reset() { *x = CreateRecordRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateRecordRequest) String() string { @@ -56,7 +45,7 @@ func (*CreateRecordRequest) ProtoMessage() {} func (x *CreateRecordRequest) ProtoReflect() protoreflect.Message { mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -86,20 +75,17 @@ func (x *CreateRecordRequest) GetData() string { } type GetRecordRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetRecordRequest) Reset() { *x = GetRecordRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetRecordRequest) String() string { @@ -110,7 +96,7 @@ func (*GetRecordRequest) ProtoMessage() {} func (x *GetRecordRequest) ProtoReflect() protoreflect.Message { mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -133,22 +119,19 @@ func (x *GetRecordRequest) GetId() string { } type RecordResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - CreatedAt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RecordResponse) Reset() { *x = RecordResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RecordResponse) String() string { @@ -159,7 +142,7 @@ func (*RecordResponse) ProtoMessage() {} func (x *RecordResponse) ProtoReflect() protoreflect.Message { mi := &file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -188,7 +171,7 @@ func (x *RecordResponse) GetData() string { return "" } -func (x *RecordResponse) GetCreatedAt() *timestamp.Timestamp { +func (x *RecordResponse) GetCreatedAt() *timestamppb.Timestamp { if x != nil { return x.CreatedAt } @@ -197,58 +180,41 @@ func (x *RecordResponse) GetCreatedAt() *timestamp.Timestamp { var File_module_record_interfaces_http_grpc_pb_record_proto protoreflect.FileDescriptor -var file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc = []byte{ - 0x0a, 0x32, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2f, - 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x62, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x1f, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x39, 0x0a, - 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x22, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x6e, 0x0a, 0x0e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x32, 0x5d, 0x0a, 0x14, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0x59, 0x0a, 0x12, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, - 0x49, 0x44, 0x12, 0x18, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc = "" + + "\n" + + "2module/record/interfaces/http/grpc/pb/record.proto\x12\x06record\x1a\x1fgoogle/protobuf/timestamp.proto\"9\n" + + "\x13CreateRecordRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04data\x18\x02 \x01(\tR\x04data\"\"\n" + + "\x10GetRecordRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"n\n" + + "\x0eRecordResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04data\x18\x02 \x01(\tR\x04data\x128\n" + + "\tcreatedAt\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt2]\n" + + "\x14RecordCommandService\x12E\n" + + "\fCreateRecord\x12\x1b.record.CreateRecordRequest\x1a\x16.record.RecordResponse\"\x002Y\n" + + "\x12RecordQueryService\x12C\n" + + "\rGetRecordByID\x12\x18.record.GetRecordRequest\x1a\x16.record.RecordResponse\"\x00B.Z,module/record/interfaces/http/grpc/pb;recordb\x06proto3" var ( file_module_record_interfaces_http_grpc_pb_record_proto_rawDescOnce sync.Once - file_module_record_interfaces_http_grpc_pb_record_proto_rawDescData = file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc + file_module_record_interfaces_http_grpc_pb_record_proto_rawDescData []byte ) func file_module_record_interfaces_http_grpc_pb_record_proto_rawDescGZIP() []byte { file_module_record_interfaces_http_grpc_pb_record_proto_rawDescOnce.Do(func() { - file_module_record_interfaces_http_grpc_pb_record_proto_rawDescData = protoimpl.X.CompressGZIP(file_module_record_interfaces_http_grpc_pb_record_proto_rawDescData) + file_module_record_interfaces_http_grpc_pb_record_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc), len(file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc))) }) return file_module_record_interfaces_http_grpc_pb_record_proto_rawDescData } var file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_module_record_interfaces_http_grpc_pb_record_proto_goTypes = []interface{}{ - (*CreateRecordRequest)(nil), // 0: record.CreateRecordRequest - (*GetRecordRequest)(nil), // 1: record.GetRecordRequest - (*RecordResponse)(nil), // 2: record.RecordResponse - (*timestamp.Timestamp)(nil), // 3: google.protobuf.Timestamp +var file_module_record_interfaces_http_grpc_pb_record_proto_goTypes = []any{ + (*CreateRecordRequest)(nil), // 0: record.CreateRecordRequest + (*GetRecordRequest)(nil), // 1: record.GetRecordRequest + (*RecordResponse)(nil), // 2: record.RecordResponse + (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp } var file_module_record_interfaces_http_grpc_pb_record_proto_depIdxs = []int32{ 3, // 0: record.RecordResponse.createdAt:type_name -> google.protobuf.Timestamp @@ -268,49 +234,11 @@ func file_module_record_interfaces_http_grpc_pb_record_proto_init() { if File_module_record_interfaces_http_grpc_pb_record_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRecordRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRecordRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc), len(file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc)), NumEnums: 0, NumMessages: 3, NumExtensions: 0, @@ -321,159 +249,6 @@ func file_module_record_interfaces_http_grpc_pb_record_proto_init() { MessageInfos: file_module_record_interfaces_http_grpc_pb_record_proto_msgTypes, }.Build() File_module_record_interfaces_http_grpc_pb_record_proto = out.File - file_module_record_interfaces_http_grpc_pb_record_proto_rawDesc = nil file_module_record_interfaces_http_grpc_pb_record_proto_goTypes = nil file_module_record_interfaces_http_grpc_pb_record_proto_depIdxs = nil } - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// 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.SupportPackageIsVersion6 - -// RecordCommandServiceClient is the client API for RecordCommandService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type RecordCommandServiceClient interface { - CreateRecord(ctx context.Context, in *CreateRecordRequest, opts ...grpc.CallOption) (*RecordResponse, error) -} - -type recordCommandServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewRecordCommandServiceClient(cc grpc.ClientConnInterface) RecordCommandServiceClient { - return &recordCommandServiceClient{cc} -} - -func (c *recordCommandServiceClient) CreateRecord(ctx context.Context, in *CreateRecordRequest, opts ...grpc.CallOption) (*RecordResponse, error) { - out := new(RecordResponse) - err := c.cc.Invoke(ctx, "/record.RecordCommandService/CreateRecord", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// RecordCommandServiceServer is the server API for RecordCommandService service. -type RecordCommandServiceServer interface { - CreateRecord(context.Context, *CreateRecordRequest) (*RecordResponse, error) -} - -// UnimplementedRecordCommandServiceServer can be embedded to have forward compatible implementations. -type UnimplementedRecordCommandServiceServer struct { -} - -func (*UnimplementedRecordCommandServiceServer) CreateRecord(context.Context, *CreateRecordRequest) (*RecordResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateRecord not implemented") -} - -func RegisterRecordCommandServiceServer(s *grpc.Server, srv RecordCommandServiceServer) { - s.RegisterService(&_RecordCommandService_serviceDesc, srv) -} - -func _RecordCommandService_CreateRecord_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateRecordRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RecordCommandServiceServer).CreateRecord(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/record.RecordCommandService/CreateRecord", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RecordCommandServiceServer).CreateRecord(ctx, req.(*CreateRecordRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _RecordCommandService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "record.RecordCommandService", - HandlerType: (*RecordCommandServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "CreateRecord", - Handler: _RecordCommandService_CreateRecord_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "module/record/interfaces/http/grpc/pb/record.proto", -} - -// RecordQueryServiceClient is the client API for RecordQueryService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type RecordQueryServiceClient interface { - GetRecordByID(ctx context.Context, in *GetRecordRequest, opts ...grpc.CallOption) (*RecordResponse, error) -} - -type recordQueryServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewRecordQueryServiceClient(cc grpc.ClientConnInterface) RecordQueryServiceClient { - return &recordQueryServiceClient{cc} -} - -func (c *recordQueryServiceClient) GetRecordByID(ctx context.Context, in *GetRecordRequest, opts ...grpc.CallOption) (*RecordResponse, error) { - out := new(RecordResponse) - err := c.cc.Invoke(ctx, "/record.RecordQueryService/GetRecordByID", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// RecordQueryServiceServer is the server API for RecordQueryService service. -type RecordQueryServiceServer interface { - GetRecordByID(context.Context, *GetRecordRequest) (*RecordResponse, error) -} - -// UnimplementedRecordQueryServiceServer can be embedded to have forward compatible implementations. -type UnimplementedRecordQueryServiceServer struct { -} - -func (*UnimplementedRecordQueryServiceServer) GetRecordByID(context.Context, *GetRecordRequest) (*RecordResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRecordByID not implemented") -} - -func RegisterRecordQueryServiceServer(s *grpc.Server, srv RecordQueryServiceServer) { - s.RegisterService(&_RecordQueryService_serviceDesc, srv) -} - -func _RecordQueryService_GetRecordByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRecordRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RecordQueryServiceServer).GetRecordByID(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/record.RecordQueryService/GetRecordByID", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RecordQueryServiceServer).GetRecordByID(ctx, req.(*GetRecordRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _RecordQueryService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "record.RecordQueryService", - HandlerType: (*RecordQueryServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetRecordByID", - Handler: _RecordQueryService_GetRecordByID_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "module/record/interfaces/http/grpc/pb/record.proto", -} diff --git a/module/record/interfaces/http/grpc/pb/record.proto b/module/record/interfaces/http/grpc/pb/record.proto index f88b24d..8ef8e14 100644 --- a/module/record/interfaces/http/grpc/pb/record.proto +++ b/module/record/interfaces/http/grpc/pb/record.proto @@ -3,6 +3,8 @@ package record; import "google/protobuf/timestamp.proto"; +option go_package = "module/record/interfaces/http/grpc/pb;record"; + message CreateRecordRequest { string id = 1; string data = 2; diff --git a/module/record/interfaces/http/grpc/pb/record_grpc.pb.go b/module/record/interfaces/http/grpc/pb/record_grpc.pb.go new file mode 100644 index 0000000..3040f13 --- /dev/null +++ b/module/record/interfaces/http/grpc/pb/record_grpc.pb.go @@ -0,0 +1,223 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc v5.29.3 +// source: module/record/interfaces/http/grpc/pb/record.proto + +package record + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + RecordCommandService_CreateRecord_FullMethodName = "/record.RecordCommandService/CreateRecord" +) + +// RecordCommandServiceClient is the client API for RecordCommandService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type RecordCommandServiceClient interface { + CreateRecord(ctx context.Context, in *CreateRecordRequest, opts ...grpc.CallOption) (*RecordResponse, error) +} + +type recordCommandServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRecordCommandServiceClient(cc grpc.ClientConnInterface) RecordCommandServiceClient { + return &recordCommandServiceClient{cc} +} + +func (c *recordCommandServiceClient) CreateRecord(ctx context.Context, in *CreateRecordRequest, opts ...grpc.CallOption) (*RecordResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RecordResponse) + err := c.cc.Invoke(ctx, RecordCommandService_CreateRecord_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RecordCommandServiceServer is the server API for RecordCommandService service. +// All implementations must embed UnimplementedRecordCommandServiceServer +// for forward compatibility. +type RecordCommandServiceServer interface { + CreateRecord(context.Context, *CreateRecordRequest) (*RecordResponse, error) + mustEmbedUnimplementedRecordCommandServiceServer() +} + +// UnimplementedRecordCommandServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRecordCommandServiceServer struct{} + +func (UnimplementedRecordCommandServiceServer) CreateRecord(context.Context, *CreateRecordRequest) (*RecordResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateRecord not implemented") +} +func (UnimplementedRecordCommandServiceServer) mustEmbedUnimplementedRecordCommandServiceServer() {} +func (UnimplementedRecordCommandServiceServer) testEmbeddedByValue() {} + +// UnsafeRecordCommandServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RecordCommandServiceServer will +// result in compilation errors. +type UnsafeRecordCommandServiceServer interface { + mustEmbedUnimplementedRecordCommandServiceServer() +} + +func RegisterRecordCommandServiceServer(s grpc.ServiceRegistrar, srv RecordCommandServiceServer) { + // If the following call pancis, it indicates UnimplementedRecordCommandServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&RecordCommandService_ServiceDesc, srv) +} + +func _RecordCommandService_CreateRecord_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateRecordRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RecordCommandServiceServer).CreateRecord(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RecordCommandService_CreateRecord_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RecordCommandServiceServer).CreateRecord(ctx, req.(*CreateRecordRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// RecordCommandService_ServiceDesc is the grpc.ServiceDesc for RecordCommandService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RecordCommandService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "record.RecordCommandService", + HandlerType: (*RecordCommandServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateRecord", + Handler: _RecordCommandService_CreateRecord_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "module/record/interfaces/http/grpc/pb/record.proto", +} + +const ( + RecordQueryService_GetRecordByID_FullMethodName = "/record.RecordQueryService/GetRecordByID" +) + +// RecordQueryServiceClient is the client API for RecordQueryService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type RecordQueryServiceClient interface { + GetRecordByID(ctx context.Context, in *GetRecordRequest, opts ...grpc.CallOption) (*RecordResponse, error) +} + +type recordQueryServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRecordQueryServiceClient(cc grpc.ClientConnInterface) RecordQueryServiceClient { + return &recordQueryServiceClient{cc} +} + +func (c *recordQueryServiceClient) GetRecordByID(ctx context.Context, in *GetRecordRequest, opts ...grpc.CallOption) (*RecordResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RecordResponse) + err := c.cc.Invoke(ctx, RecordQueryService_GetRecordByID_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RecordQueryServiceServer is the server API for RecordQueryService service. +// All implementations must embed UnimplementedRecordQueryServiceServer +// for forward compatibility. +type RecordQueryServiceServer interface { + GetRecordByID(context.Context, *GetRecordRequest) (*RecordResponse, error) + mustEmbedUnimplementedRecordQueryServiceServer() +} + +// UnimplementedRecordQueryServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRecordQueryServiceServer struct{} + +func (UnimplementedRecordQueryServiceServer) GetRecordByID(context.Context, *GetRecordRequest) (*RecordResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRecordByID not implemented") +} +func (UnimplementedRecordQueryServiceServer) mustEmbedUnimplementedRecordQueryServiceServer() {} +func (UnimplementedRecordQueryServiceServer) testEmbeddedByValue() {} + +// UnsafeRecordQueryServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RecordQueryServiceServer will +// result in compilation errors. +type UnsafeRecordQueryServiceServer interface { + mustEmbedUnimplementedRecordQueryServiceServer() +} + +func RegisterRecordQueryServiceServer(s grpc.ServiceRegistrar, srv RecordQueryServiceServer) { + // If the following call pancis, it indicates UnimplementedRecordQueryServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&RecordQueryService_ServiceDesc, srv) +} + +func _RecordQueryService_GetRecordByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRecordRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RecordQueryServiceServer).GetRecordByID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RecordQueryService_GetRecordByID_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RecordQueryServiceServer).GetRecordByID(ctx, req.(*GetRecordRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// RecordQueryService_ServiceDesc is the grpc.ServiceDesc for RecordQueryService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RecordQueryService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "record.RecordQueryService", + HandlerType: (*RecordQueryServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetRecordByID", + Handler: _RecordQueryService_GetRecordByID_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "module/record/interfaces/http/grpc/pb/record.proto", +} From a1d39e6b419bfa0bfd273bbde3a2b24ee47af8bd Mon Sep 17 00:00:00 2001 From: Andrea Ella Remoreras Date: Fri, 1 Aug 2025 13:40:19 +0800 Subject: [PATCH 2/2] build: bump api version to 1.11.0 --- docs/openapi.json | 2 +- interfaces/http/rest/router.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index b61ae0f..32325c7 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -8,7 +8,7 @@ "name": "Nuxify Inc.", "email": "hello@nuxify.tech" }, - "version": "1.10.0" + "version": "1.11.0" }, "servers": [ { diff --git a/interfaces/http/rest/router.go b/interfaces/http/rest/router.go index 6854796..e8d4665 100644 --- a/interfaces/http/rest/router.go +++ b/interfaces/http/rest/router.go @@ -63,7 +63,7 @@ func (router *router) InitRouter() *chi.Mux { Status: http.StatusOK, Success: true, Message: "alive", - Data: map[string]string{"version": "v1.10.0"}, + Data: map[string]string{"version": "v1.11.0"}, } response.JSON(w)