diff --git a/product/internal/logic/addLogic.go b/product/internal/logic/addLogic.go index 9ef54f6..6cdec43 100644 --- a/product/internal/logic/addLogic.go +++ b/product/internal/logic/addLogic.go @@ -3,6 +3,7 @@ package logic import ( "context" "encoding/json" + "errors" "strconv" "time" @@ -14,10 +15,9 @@ import ( "pkg.local/log" "pkg.local/modelbase" "pkg.local/redis" + "pkg.local/utils" "github.com/zeromicro/go-zero/core/logx" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" "gorm.io/gorm" ) @@ -35,7 +35,7 @@ func NewAddLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AddLogic { } } -func (l *AddLogic) Add(in *product.AddReq) (*product.AddResp, error) { +func (l *AddLogic) Add(in *product.AddReq) (*product.Response, error) { l.Info("zero logx 方式 ... ") log.Info("原始 zap 方式 ... ") @@ -45,7 +45,7 @@ func (l *AddLogic) Add(in *product.AddReq) (*product.AddResp, error) { if in.GetAgentPrice() == 0 || in.GetStorePrice() == 0 || in.GetSalePrice() == 0 || in.GetSharePrice() == 0 || in.GetSaleReward() == "" { - return nil, status.Error(codes.InvalidArgument, "缺少相关价格") + return failResponse(utils.ErrorMissingParams), nil } } @@ -53,7 +53,7 @@ func (l *AddLogic) Add(in *product.AddReq) (*product.AddResp, error) { if len(in.GetPublishTime()) > 1 { t, err := parsePublishTime(in.GetPublishTime()) if err != nil { - return nil, status.Error(codes.InvalidArgument, "时间错误") + return msgResponse(utils.Ok.Code, "时间错误"), nil } publishTime = t } @@ -64,10 +64,10 @@ func (l *AddLogic) Add(in *product.AddReq) (*product.AddResp, error) { }, &check) if err != nil { log.Errorf("check product name: %v", err) - return nil, status.Error(codes.Internal, "查询失败") + return failResponse(utils.Fail), nil } if check.Id > 0 { - return nil, status.Error(codes.AlreadyExists, "数据已存在") + return failResponse(utils.ErrorDataIsExist), nil } // 管理员信息后续从 ctx / metadata 取 @@ -158,10 +158,9 @@ func (l *AddLogic) Add(in *product.AddReq) (*product.AddResp, error) { }) if err != nil { log.Errorf("create product: %v", err) - return nil, status.Error(codes.Internal, "创建失败") + return failResponse(utils.Fail), nil } - // redis 用法示例 key := redis.GetRedisKey("product:last_add") if err := redis.Client.Set(l.ctx, key, in.GetName(), time.Hour).Err(); err != nil { log.Errorf("redis set %s: %v", key, err) @@ -169,7 +168,7 @@ func (l *AddLogic) Add(in *product.AddReq) (*product.AddResp, error) { log.Infof("add product success id=%d", data.Id) } - return &product.AddResp{}, nil + return okResponse(utils.StringEmpty), nil } func parsePublishTime(s string) (time.Time, error) { @@ -178,5 +177,5 @@ func parsePublishTime(s string) (time.Time, error) { return t, nil } } - return time.Time{}, status.Error(codes.InvalidArgument, "invalid time format") + return time.Time{}, errors.New("invalid time format") } diff --git a/product/internal/logic/editlogic.go b/product/internal/logic/editlogic.go index e2002b9..bf2af25 100644 --- a/product/internal/logic/editlogic.go +++ b/product/internal/logic/editlogic.go @@ -6,6 +6,8 @@ import ( "product/internal/svc" "product/product" + "pkg.local/utils" + "github.com/zeromicro/go-zero/core/logx" ) @@ -23,8 +25,8 @@ func NewEditLogic(ctx context.Context, svcCtx *svc.ServiceContext) *EditLogic { } } -func (l *EditLogic) Edit(in *product.EditReq) (*product.EditResp, error) { +func (l *EditLogic) Edit(in *product.EditReq) (*product.Response, error) { // todo: add your logic here and delete this line - - return &product.EditResp{}, nil + _ = in + return okResponse(utils.StringEmpty), nil } diff --git a/product/internal/logic/itemslogic.go b/product/internal/logic/itemslogic.go index 86e9495..d91f40e 100644 --- a/product/internal/logic/itemslogic.go +++ b/product/internal/logic/itemslogic.go @@ -16,8 +16,6 @@ import ( validateService "pkg.local/validate" "github.com/zeromicro/go-zero/core/logx" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" ) type ItemsLogic struct { @@ -34,10 +32,10 @@ func NewItemsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ItemsLogic } } -func (l *ItemsLogic) Items(in *product.ItemsReq) (*product.ItemsResp, error) { +func (l *ItemsLogic) Items(in *product.ItemsReq) (*product.Response, error) { var req validator.ProductItemsValidator if msg := validateService.ValidateFromProto(in, &req); msg != utils.StringEmpty { - return nil, status.Error(codes.InvalidArgument, msg) + return msgResponse(utils.Ok.Code, msg), nil } page := int(req.Page) @@ -64,7 +62,7 @@ func (l *ItemsLogic) Items(in *product.ItemsReq) (*product.ItemsResp, error) { result, err := model.ProductModel{}.Init().Page(w, &info) if err != nil { log.Errorf("product items: %v", err) - return nil, status.Error(codes.Internal, "查询失败") + return failResponse(utils.Fail), nil } items := make([]*product.Item, 0, len(info)) @@ -72,10 +70,10 @@ func (l *ItemsLogic) Items(in *product.ItemsReq) (*product.ItemsResp, error) { items = append(items, toProductItem(row)) } - return &product.ItemsResp{ + return okResponse(utils.StructToJson(&product.ItemsData{ Count: result.Count, Items: items, - }, nil + })), nil } func toProductItem(row dao.ProductInfo) *product.Item { diff --git a/product/internal/logic/response.go b/product/internal/logic/response.go new file mode 100644 index 0000000..260bdef --- /dev/null +++ b/product/internal/logic/response.go @@ -0,0 +1,29 @@ +package logic + +import ( + "product/product" + + "pkg.local/utils" +) + +func okResponse(data string) *product.Response { + return &product.Response{ + Code: utils.Ok.Code, + Msg: utils.Ok.Msg, + Data: data, + } +} + +func failResponse(err utils.Error) *product.Response { + return &product.Response{ + Code: int32(err.GetCode()), + Msg: err.GetMsg(), + } +} + +func msgResponse(code int32, msg string) *product.Response { + return &product.Response{ + Code: code, + Msg: msg, + } +} diff --git a/product/internal/server/productserver.go b/product/internal/server/productserver.go index 1477827..baf999d 100644 --- a/product/internal/server/productserver.go +++ b/product/internal/server/productserver.go @@ -1,5 +1,4 @@ // Code generated by goctl. DO NOT EDIT. -// goctl 1.10.1 // Source: product.proto package server @@ -23,17 +22,17 @@ func NewProductServer(svcCtx *svc.ServiceContext) *ProductServer { } } -func (s *ProductServer) Add(ctx context.Context, in *product.AddReq) (*product.AddResp, error) { +func (s *ProductServer) Add(ctx context.Context, in *product.AddReq) (*product.Response, error) { l := logic.NewAddLogic(ctx, s.svcCtx) return l.Add(in) } -func (s *ProductServer) Edit(ctx context.Context, in *product.EditReq) (*product.EditResp, error) { +func (s *ProductServer) Edit(ctx context.Context, in *product.EditReq) (*product.Response, error) { l := logic.NewEditLogic(ctx, s.svcCtx) return l.Edit(in) } -func (s *ProductServer) Items(ctx context.Context, in *product.ItemsReq) (*product.ItemsResp, error) { +func (s *ProductServer) Items(ctx context.Context, in *product.ItemsReq) (*product.Response, error) { l := logic.NewItemsLogic(ctx, s.svcCtx) return l.Items(in) } diff --git a/product/product/product.pb.go b/product/product/product.pb.go index c9a01f4..15466a3 100644 --- a/product/product/product.pb.go +++ b/product/product/product.pb.go @@ -23,6 +23,66 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type Response struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Response) Reset() { + *x = Response{} + mi := &file_proto_admin_product_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Response) ProtoMessage() {} + +func (x *Response) ProtoReflect() protoreflect.Message { + mi := &file_proto_admin_product_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Response.ProtoReflect.Descriptor instead. +func (*Response) Descriptor() ([]byte, []int) { + return file_proto_admin_product_proto_rawDescGZIP(), []int{0} +} + +func (x *Response) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *Response) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *Response) GetData() string { + if x != nil { + return x.Data + } + return "" +} + type ItemsReq struct { state protoimpl.MessageState `protogen:"open.v1"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -34,7 +94,7 @@ type ItemsReq struct { func (x *ItemsReq) Reset() { *x = ItemsReq{} - mi := &file_proto_admin_product_proto_msgTypes[0] + mi := &file_proto_admin_product_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46,7 +106,7 @@ func (x *ItemsReq) String() string { func (*ItemsReq) ProtoMessage() {} func (x *ItemsReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_product_proto_msgTypes[0] + mi := &file_proto_admin_product_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59,7 +119,7 @@ func (x *ItemsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ItemsReq.ProtoReflect.Descriptor instead. func (*ItemsReq) Descriptor() ([]byte, []int) { - return file_proto_admin_product_proto_rawDescGZIP(), []int{0} + return file_proto_admin_product_proto_rawDescGZIP(), []int{1} } func (x *ItemsReq) GetName() string { @@ -83,7 +143,7 @@ func (x *ItemsReq) GetPageSize() uint32 { return 0 } -type ItemsResp struct { +type ItemsData struct { state protoimpl.MessageState `protogen:"open.v1"` Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` Items []*Item `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` @@ -91,21 +151,21 @@ type ItemsResp struct { sizeCache protoimpl.SizeCache } -func (x *ItemsResp) Reset() { - *x = ItemsResp{} - mi := &file_proto_admin_product_proto_msgTypes[1] +func (x *ItemsData) Reset() { + *x = ItemsData{} + mi := &file_proto_admin_product_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ItemsResp) String() string { +func (x *ItemsData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ItemsResp) ProtoMessage() {} +func (*ItemsData) ProtoMessage() {} -func (x *ItemsResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_product_proto_msgTypes[1] +func (x *ItemsData) ProtoReflect() protoreflect.Message { + mi := &file_proto_admin_product_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116,19 +176,19 @@ func (x *ItemsResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ItemsResp.ProtoReflect.Descriptor instead. -func (*ItemsResp) Descriptor() ([]byte, []int) { - return file_proto_admin_product_proto_rawDescGZIP(), []int{1} +// Deprecated: Use ItemsData.ProtoReflect.Descriptor instead. +func (*ItemsData) Descriptor() ([]byte, []int) { + return file_proto_admin_product_proto_rawDescGZIP(), []int{2} } -func (x *ItemsResp) GetCount() int64 { +func (x *ItemsData) GetCount() int64 { if x != nil { return x.Count } return 0 } -func (x *ItemsResp) GetItems() []*Item { +func (x *ItemsData) GetItems() []*Item { if x != nil { return x.Items } @@ -179,7 +239,7 @@ type Item struct { func (x *Item) Reset() { *x = Item{} - mi := &file_proto_admin_product_proto_msgTypes[2] + mi := &file_proto_admin_product_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -191,7 +251,7 @@ func (x *Item) String() string { func (*Item) ProtoMessage() {} func (x *Item) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_product_proto_msgTypes[2] + mi := &file_proto_admin_product_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -204,7 +264,7 @@ func (x *Item) ProtoReflect() protoreflect.Message { // Deprecated: Use Item.ProtoReflect.Descriptor instead. func (*Item) Descriptor() ([]byte, []int) { - return file_proto_admin_product_proto_rawDescGZIP(), []int{2} + return file_proto_admin_product_proto_rawDescGZIP(), []int{3} } func (x *Item) GetId() int64 { @@ -493,7 +553,7 @@ type AddReq struct { func (x *AddReq) Reset() { *x = AddReq{} - mi := &file_proto_admin_product_proto_msgTypes[3] + mi := &file_proto_admin_product_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -505,7 +565,7 @@ func (x *AddReq) String() string { func (*AddReq) ProtoMessage() {} func (x *AddReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_product_proto_msgTypes[3] + mi := &file_proto_admin_product_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -518,7 +578,7 @@ func (x *AddReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddReq.ProtoReflect.Descriptor instead. func (*AddReq) Descriptor() ([]byte, []int) { - return file_proto_admin_product_proto_rawDescGZIP(), []int{3} + return file_proto_admin_product_proto_rawDescGZIP(), []int{4} } func (x *AddReq) GetName() string { @@ -703,42 +763,6 @@ func (x *AddReq) GetIndexImage() string { return "" } -type AddResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *AddResp) Reset() { - *x = AddResp{} - mi := &file_proto_admin_product_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddResp) ProtoMessage() {} - -func (x *AddResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_product_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddResp.ProtoReflect.Descriptor instead. -func (*AddResp) Descriptor() ([]byte, []int) { - return file_proto_admin_product_proto_rawDescGZIP(), []int{4} -} - type EditReq struct { state protoimpl.MessageState `protogen:"open.v1"` Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` @@ -887,61 +911,21 @@ func (x *EditReq) GetIndexImage() string { return "" } -type EditResp struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *EditResp) Reset() { - *x = EditResp{} - mi := &file_proto_admin_product_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *EditResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EditResp) ProtoMessage() {} - -func (x *EditResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_product_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EditResp.ProtoReflect.Descriptor instead. -func (*EditResp) Descriptor() ([]byte, []int) { - return file_proto_admin_product_proto_rawDescGZIP(), []int{6} -} - -func (x *EditResp) GetId() int64 { - if x != nil { - return x.Id - } - return 0 -} - var File_proto_admin_product_proto protoreflect.FileDescriptor const file_proto_admin_product_proto_rawDesc = "" + "\n" + - "\x19proto/admin/product.proto\x12\aproduct\x1a\x1bbuf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\"s\n" + + "\x19proto/admin/product.proto\x12\aproduct\x1a\x1bbuf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\"D\n" + + "\bResponse\x12\x12\n" + + "\x04code\x18\x01 \x01(\x05R\x04code\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\x12\x12\n" + + "\x04data\x18\x03 \x01(\tR\x04data\"s\n" + "\bItemsReq\x12\x1c\n" + "\x04name\x18\x01 \x01(\tB\b\xbaH\x05r\x03\x18\x80\x02R\x04name\x12\x1e\n" + "\x04page\x18\x02 \x01(\rB\n" + "\xbaH\a\xd8\x01\x01*\x02(\x01R\x04page\x12)\n" + "\tpage_size\x18\x03 \x01(\rB\f\xbaH\t\xd8\x01\x01*\x04\x18d(\x01R\bpageSize\"F\n" + - "\tItemsResp\x12\x14\n" + + "\tItemsData\x12\x14\n" + "\x05count\x18\x01 \x01(\x03R\x05count\x12#\n" + "\x05items\x18\x02 \x03(\v2\r.product.ItemR\x05items\"\x8e\b\n" + "\x04Item\x12\x0e\n" + @@ -1034,8 +1018,7 @@ const file_proto_admin_product_proto_rawDesc = "" + "\x06is_buy\x18\x18 \x01(\rB\f\xbaH\t\xd8\x01\x01*\x040\x010\x02R\x05isBuy\x12'\n" + "\bis_index\x18\x19 \x01(\rB\f\xbaH\t\xd8\x01\x01*\x040\x010\x02R\aisIndex\x12)\n" + "\vindex_image\x18\x1a \x01(\tB\b\xbaH\x05r\x03\x18\xff\x01R\n" + - "indexImage\"\t\n" + - "\aAddResp\"\x8e\x04\n" + + "indexImage\"\x8e\x04\n" + "\aEditReq\x12\x17\n" + "\x02id\x18\x01 \x01(\x03B\a\xbaH\x04\"\x02 \x00R\x02id\x12\x1e\n" + "\x04name\x18\x02 \x01(\tB\n" + @@ -1056,13 +1039,11 @@ const file_proto_admin_product_proto_rawDesc = "" + "\x06is_buy\x18\f \x01(\rB\f\xbaH\t\xd8\x01\x01*\x040\x010\x02R\x05isBuy\x12'\n" + "\bis_index\x18\r \x01(\rB\f\xbaH\t\xd8\x01\x01*\x040\x010\x02R\aisIndex\x12)\n" + "\vindex_image\x18\x0e \x01(\tB\b\xbaH\x05r\x03\x18\xff\x01R\n" + - "indexImage\"\x1a\n" + - "\bEditResp\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x03R\x02id2\xe7\x01\n" + - "\aProduct\x12F\n" + - "\x03Add\x12\x0f.product.AddReq\x1a\x10.product.AddResp\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/admin/v3/product\x12I\n" + - "\x04Edit\x12\x10.product.EditReq\x1a\x11.product.EditResp\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\x1a\x11/admin/v3/product\x12I\n" + - "\x05Items\x12\x11.product.ItemsReq\x1a\x12.product.ItemsResp\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/admin/v3/productB\vZ\t./productb\x06proto3" + "indexImage2\xe7\x01\n" + + "\aProduct\x12G\n" + + "\x03Add\x12\x0f.product.AddReq\x1a\x11.product.Response\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/admin/v3/product\x12I\n" + + "\x04Edit\x12\x10.product.EditReq\x1a\x11.product.Response\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\x1a\x11/admin/v3/product\x12H\n" + + "\x05Items\x12\x11.product.ItemsReq\x1a\x11.product.Response\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/admin/v3/productB\vZ\t./productb\x06proto3" var ( file_proto_admin_product_proto_rawDescOnce sync.Once @@ -1076,24 +1057,23 @@ func file_proto_admin_product_proto_rawDescGZIP() []byte { return file_proto_admin_product_proto_rawDescData } -var file_proto_admin_product_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_proto_admin_product_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_proto_admin_product_proto_goTypes = []any{ - (*ItemsReq)(nil), // 0: product.ItemsReq - (*ItemsResp)(nil), // 1: product.ItemsResp - (*Item)(nil), // 2: product.Item - (*AddReq)(nil), // 3: product.AddReq - (*AddResp)(nil), // 4: product.AddResp + (*Response)(nil), // 0: product.Response + (*ItemsReq)(nil), // 1: product.ItemsReq + (*ItemsData)(nil), // 2: product.ItemsData + (*Item)(nil), // 3: product.Item + (*AddReq)(nil), // 4: product.AddReq (*EditReq)(nil), // 5: product.EditReq - (*EditResp)(nil), // 6: product.EditResp } var file_proto_admin_product_proto_depIdxs = []int32{ - 2, // 0: product.ItemsResp.items:type_name -> product.Item - 3, // 1: product.Product.Add:input_type -> product.AddReq + 3, // 0: product.ItemsData.items:type_name -> product.Item + 4, // 1: product.Product.Add:input_type -> product.AddReq 5, // 2: product.Product.Edit:input_type -> product.EditReq - 0, // 3: product.Product.Items:input_type -> product.ItemsReq - 4, // 4: product.Product.Add:output_type -> product.AddResp - 6, // 5: product.Product.Edit:output_type -> product.EditResp - 1, // 6: product.Product.Items:output_type -> product.ItemsResp + 1, // 3: product.Product.Items:input_type -> product.ItemsReq + 0, // 4: product.Product.Add:output_type -> product.Response + 0, // 5: product.Product.Edit:output_type -> product.Response + 0, // 6: product.Product.Items:output_type -> product.Response 4, // [4:7] is the sub-list for method output_type 1, // [1:4] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name @@ -1112,7 +1092,7 @@ func file_proto_admin_product_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_admin_product_proto_rawDesc), len(file_proto_admin_product_proto_rawDesc)), NumEnums: 0, - NumMessages: 7, + NumMessages: 6, NumExtensions: 0, NumServices: 1, }, diff --git a/product/product/product_grpc.pb.go b/product/product/product_grpc.pb.go index 686dd03..f0718f6 100644 --- a/product/product/product_grpc.pb.go +++ b/product/product/product_grpc.pb.go @@ -28,9 +28,9 @@ const ( // // 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 ProductClient interface { - Add(ctx context.Context, in *AddReq, opts ...grpc.CallOption) (*AddResp, error) - Edit(ctx context.Context, in *EditReq, opts ...grpc.CallOption) (*EditResp, error) - Items(ctx context.Context, in *ItemsReq, opts ...grpc.CallOption) (*ItemsResp, error) + Add(ctx context.Context, in *AddReq, opts ...grpc.CallOption) (*Response, error) + Edit(ctx context.Context, in *EditReq, opts ...grpc.CallOption) (*Response, error) + Items(ctx context.Context, in *ItemsReq, opts ...grpc.CallOption) (*Response, error) } type productClient struct { @@ -41,9 +41,9 @@ func NewProductClient(cc grpc.ClientConnInterface) ProductClient { return &productClient{cc} } -func (c *productClient) Add(ctx context.Context, in *AddReq, opts ...grpc.CallOption) (*AddResp, error) { +func (c *productClient) Add(ctx context.Context, in *AddReq, opts ...grpc.CallOption) (*Response, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AddResp) + out := new(Response) err := c.cc.Invoke(ctx, Product_Add_FullMethodName, in, out, cOpts...) if err != nil { return nil, err @@ -51,9 +51,9 @@ func (c *productClient) Add(ctx context.Context, in *AddReq, opts ...grpc.CallOp return out, nil } -func (c *productClient) Edit(ctx context.Context, in *EditReq, opts ...grpc.CallOption) (*EditResp, error) { +func (c *productClient) Edit(ctx context.Context, in *EditReq, opts ...grpc.CallOption) (*Response, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(EditResp) + out := new(Response) err := c.cc.Invoke(ctx, Product_Edit_FullMethodName, in, out, cOpts...) if err != nil { return nil, err @@ -61,9 +61,9 @@ func (c *productClient) Edit(ctx context.Context, in *EditReq, opts ...grpc.Call return out, nil } -func (c *productClient) Items(ctx context.Context, in *ItemsReq, opts ...grpc.CallOption) (*ItemsResp, error) { +func (c *productClient) Items(ctx context.Context, in *ItemsReq, opts ...grpc.CallOption) (*Response, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ItemsResp) + out := new(Response) err := c.cc.Invoke(ctx, Product_Items_FullMethodName, in, out, cOpts...) if err != nil { return nil, err @@ -75,9 +75,9 @@ func (c *productClient) Items(ctx context.Context, in *ItemsReq, opts ...grpc.Ca // All implementations must embed UnimplementedProductServer // for forward compatibility. type ProductServer interface { - Add(context.Context, *AddReq) (*AddResp, error) - Edit(context.Context, *EditReq) (*EditResp, error) - Items(context.Context, *ItemsReq) (*ItemsResp, error) + Add(context.Context, *AddReq) (*Response, error) + Edit(context.Context, *EditReq) (*Response, error) + Items(context.Context, *ItemsReq) (*Response, error) mustEmbedUnimplementedProductServer() } @@ -88,13 +88,13 @@ type ProductServer interface { // pointer dereference when methods are called. type UnimplementedProductServer struct{} -func (UnimplementedProductServer) Add(context.Context, *AddReq) (*AddResp, error) { +func (UnimplementedProductServer) Add(context.Context, *AddReq) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method Add not implemented") } -func (UnimplementedProductServer) Edit(context.Context, *EditReq) (*EditResp, error) { +func (UnimplementedProductServer) Edit(context.Context, *EditReq) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method Edit not implemented") } -func (UnimplementedProductServer) Items(context.Context, *ItemsReq) (*ItemsResp, error) { +func (UnimplementedProductServer) Items(context.Context, *ItemsReq) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method Items not implemented") } func (UnimplementedProductServer) mustEmbedUnimplementedProductServer() {} diff --git a/product/productclient/product.go b/product/productclient/product.go index e9e1e5f..7aa1a13 100644 --- a/product/productclient/product.go +++ b/product/productclient/product.go @@ -1,5 +1,4 @@ // Code generated by goctl. DO NOT EDIT. -// goctl 1.10.1 // Source: product.proto package productclient @@ -15,17 +14,16 @@ import ( type ( AddReq = product.AddReq - AddResp = product.AddResp EditReq = product.EditReq - EditResp = product.EditResp ItemsReq = product.ItemsReq - ItemsResp = product.ItemsResp + ItemsData = product.ItemsData Item = product.Item + Response = product.Response Product interface { - Add(ctx context.Context, in *AddReq, opts ...grpc.CallOption) (*AddResp, error) - Edit(ctx context.Context, in *EditReq, opts ...grpc.CallOption) (*EditResp, error) - Items(ctx context.Context, in *ItemsReq, opts ...grpc.CallOption) (*ItemsResp, error) + Add(ctx context.Context, in *AddReq, opts ...grpc.CallOption) (*Response, error) + Edit(ctx context.Context, in *EditReq, opts ...grpc.CallOption) (*Response, error) + Items(ctx context.Context, in *ItemsReq, opts ...grpc.CallOption) (*Response, error) } defaultProduct struct { @@ -39,17 +37,17 @@ func NewProduct(cli zrpc.Client) Product { } } -func (m *defaultProduct) Add(ctx context.Context, in *AddReq, opts ...grpc.CallOption) (*AddResp, error) { +func (m *defaultProduct) Add(ctx context.Context, in *AddReq, opts ...grpc.CallOption) (*Response, error) { client := product.NewProductClient(m.cli.Conn()) return client.Add(ctx, in, opts...) } -func (m *defaultProduct) Edit(ctx context.Context, in *EditReq, opts ...grpc.CallOption) (*EditResp, error) { +func (m *defaultProduct) Edit(ctx context.Context, in *EditReq, opts ...grpc.CallOption) (*Response, error) { client := product.NewProductClient(m.cli.Conn()) return client.Edit(ctx, in, opts...) } -func (m *defaultProduct) Items(ctx context.Context, in *ItemsReq, opts ...grpc.CallOption) (*ItemsResp, error) { +func (m *defaultProduct) Items(ctx context.Context, in *ItemsReq, opts ...grpc.CallOption) (*Response, error) { client := product.NewProductClient(m.cli.Conn()) return client.Items(ctx, in, opts...) } diff --git a/product/proto/admin/product.proto b/product/proto/admin/product.proto index ad02e38..1dd9f42 100644 --- a/product/proto/admin/product.proto +++ b/product/proto/admin/product.proto @@ -7,25 +7,31 @@ import "buf/validate/validate.proto"; import "google/api/annotations.proto"; service Product { - rpc Add(AddReq) returns (AddResp) { + rpc Add(AddReq) returns (Response) { option (google.api.http) = { post: "/admin/v3/product" body: "*" }; } - rpc Edit(EditReq) returns (EditResp) { + rpc Edit(EditReq) returns (Response) { option (google.api.http) = { put: "/admin/v3/product" body: "*" }; } - rpc Items(ItemsReq) returns (ItemsResp) { + rpc Items(ItemsReq) returns (Response) { option (google.api.http) = { get: "/admin/v3/product" }; } } +message Response { + int32 code = 1; + string msg = 2; + string data = 3; +} + message ItemsReq { string name = 1 [(buf.validate.field).string = {max_len: 256}]; uint32 page = 2 [(buf.validate.field) = { @@ -38,7 +44,7 @@ message ItemsReq { }]; } -message ItemsResp { +message ItemsData { int64 count = 1; repeated Item items = 2; } @@ -132,9 +138,6 @@ message AddReq { // reserved 2; } -message AddResp { -} - message EditReq { int64 id = 1 [(buf.validate.field).int64 = {gt: 0}]; string name = 2 [(buf.validate.field).string = {min_len: 1, max_len: 256}]; @@ -157,7 +160,3 @@ message EditReq { }]; string index_image = 14 [(buf.validate.field).string = {max_len: 255}]; } - -message EditResp { - int64 id = 1; -}