diff --git a/src/productcatalogservice/genproto.sh b/src/productcatalogservice/genproto.sh new file mode 100755 index 0000000..1855f6b --- /dev/null +++ b/src/productcatalogservice/genproto.sh @@ -0,0 +1,6 @@ +#!/bin/bash -e + +PATH=$PATH:$GOPATH/bin +protodir=../../pb + +protoc --go_out=plugins=grpc:genproto -I $protodir $protodir/demo.proto diff --git a/src/productcatalogservice/genproto/demo.pb.go b/src/productcatalogservice/genproto/demo.pb.go new file mode 100644 index 0000000..4358e1d --- /dev/null +++ b/src/productcatalogservice/genproto/demo.pb.go @@ -0,0 +1,2433 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: demo.proto + +package hipstershop + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type CartItem struct { + ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"` + Quantity int32 `protobuf:"varint,2,opt,name=quantity,proto3" json:"quantity,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CartItem) Reset() { *m = CartItem{} } +func (m *CartItem) String() string { return proto.CompactTextString(m) } +func (*CartItem) ProtoMessage() {} +func (*CartItem) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{0} +} +func (m *CartItem) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CartItem.Unmarshal(m, b) +} +func (m *CartItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CartItem.Marshal(b, m, deterministic) +} +func (dst *CartItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_CartItem.Merge(dst, src) +} +func (m *CartItem) XXX_Size() int { + return xxx_messageInfo_CartItem.Size(m) +} +func (m *CartItem) XXX_DiscardUnknown() { + xxx_messageInfo_CartItem.DiscardUnknown(m) +} + +var xxx_messageInfo_CartItem proto.InternalMessageInfo + +func (m *CartItem) GetProductId() string { + if m != nil { + return m.ProductId + } + return "" +} + +func (m *CartItem) GetQuantity() int32 { + if m != nil { + return m.Quantity + } + return 0 +} + +type AddItemRequest struct { + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Item *CartItem `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddItemRequest) Reset() { *m = AddItemRequest{} } +func (m *AddItemRequest) String() string { return proto.CompactTextString(m) } +func (*AddItemRequest) ProtoMessage() {} +func (*AddItemRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{1} +} +func (m *AddItemRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddItemRequest.Unmarshal(m, b) +} +func (m *AddItemRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddItemRequest.Marshal(b, m, deterministic) +} +func (dst *AddItemRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddItemRequest.Merge(dst, src) +} +func (m *AddItemRequest) XXX_Size() int { + return xxx_messageInfo_AddItemRequest.Size(m) +} +func (m *AddItemRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AddItemRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AddItemRequest proto.InternalMessageInfo + +func (m *AddItemRequest) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *AddItemRequest) GetItem() *CartItem { + if m != nil { + return m.Item + } + return nil +} + +type EmptyCartRequest struct { + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EmptyCartRequest) Reset() { *m = EmptyCartRequest{} } +func (m *EmptyCartRequest) String() string { return proto.CompactTextString(m) } +func (*EmptyCartRequest) ProtoMessage() {} +func (*EmptyCartRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{2} +} +func (m *EmptyCartRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EmptyCartRequest.Unmarshal(m, b) +} +func (m *EmptyCartRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EmptyCartRequest.Marshal(b, m, deterministic) +} +func (dst *EmptyCartRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_EmptyCartRequest.Merge(dst, src) +} +func (m *EmptyCartRequest) XXX_Size() int { + return xxx_messageInfo_EmptyCartRequest.Size(m) +} +func (m *EmptyCartRequest) XXX_DiscardUnknown() { + xxx_messageInfo_EmptyCartRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_EmptyCartRequest proto.InternalMessageInfo + +func (m *EmptyCartRequest) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +type GetCartRequest struct { + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCartRequest) Reset() { *m = GetCartRequest{} } +func (m *GetCartRequest) String() string { return proto.CompactTextString(m) } +func (*GetCartRequest) ProtoMessage() {} +func (*GetCartRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{3} +} +func (m *GetCartRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCartRequest.Unmarshal(m, b) +} +func (m *GetCartRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCartRequest.Marshal(b, m, deterministic) +} +func (dst *GetCartRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCartRequest.Merge(dst, src) +} +func (m *GetCartRequest) XXX_Size() int { + return xxx_messageInfo_GetCartRequest.Size(m) +} +func (m *GetCartRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCartRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCartRequest proto.InternalMessageInfo + +func (m *GetCartRequest) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +type Cart struct { + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cart) Reset() { *m = Cart{} } +func (m *Cart) String() string { return proto.CompactTextString(m) } +func (*Cart) ProtoMessage() {} +func (*Cart) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{4} +} +func (m *Cart) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cart.Unmarshal(m, b) +} +func (m *Cart) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cart.Marshal(b, m, deterministic) +} +func (dst *Cart) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cart.Merge(dst, src) +} +func (m *Cart) XXX_Size() int { + return xxx_messageInfo_Cart.Size(m) +} +func (m *Cart) XXX_DiscardUnknown() { + xxx_messageInfo_Cart.DiscardUnknown(m) +} + +var xxx_messageInfo_Cart proto.InternalMessageInfo + +func (m *Cart) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *Cart) GetItems() []*CartItem { + if m != nil { + return m.Items + } + return nil +} + +type Empty struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Empty) Reset() { *m = Empty{} } +func (m *Empty) String() string { return proto.CompactTextString(m) } +func (*Empty) ProtoMessage() {} +func (*Empty) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{5} +} +func (m *Empty) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Empty.Unmarshal(m, b) +} +func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Empty.Marshal(b, m, deterministic) +} +func (dst *Empty) XXX_Merge(src proto.Message) { + xxx_messageInfo_Empty.Merge(dst, src) +} +func (m *Empty) XXX_Size() int { + return xxx_messageInfo_Empty.Size(m) +} +func (m *Empty) XXX_DiscardUnknown() { + xxx_messageInfo_Empty.DiscardUnknown(m) +} + +var xxx_messageInfo_Empty proto.InternalMessageInfo + +type ListRecommendationsRequest struct { + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + ProductIds []string `protobuf:"bytes,2,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListRecommendationsRequest) Reset() { *m = ListRecommendationsRequest{} } +func (m *ListRecommendationsRequest) String() string { return proto.CompactTextString(m) } +func (*ListRecommendationsRequest) ProtoMessage() {} +func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{6} +} +func (m *ListRecommendationsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListRecommendationsRequest.Unmarshal(m, b) +} +func (m *ListRecommendationsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListRecommendationsRequest.Marshal(b, m, deterministic) +} +func (dst *ListRecommendationsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListRecommendationsRequest.Merge(dst, src) +} +func (m *ListRecommendationsRequest) XXX_Size() int { + return xxx_messageInfo_ListRecommendationsRequest.Size(m) +} +func (m *ListRecommendationsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListRecommendationsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListRecommendationsRequest proto.InternalMessageInfo + +func (m *ListRecommendationsRequest) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *ListRecommendationsRequest) GetProductIds() []string { + if m != nil { + return m.ProductIds + } + return nil +} + +type ListRecommendationsResponse struct { + ProductIds []string `protobuf:"bytes,1,rep,name=product_ids,json=productIds,proto3" json:"product_ids,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListRecommendationsResponse) Reset() { *m = ListRecommendationsResponse{} } +func (m *ListRecommendationsResponse) String() string { return proto.CompactTextString(m) } +func (*ListRecommendationsResponse) ProtoMessage() {} +func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{7} +} +func (m *ListRecommendationsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListRecommendationsResponse.Unmarshal(m, b) +} +func (m *ListRecommendationsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListRecommendationsResponse.Marshal(b, m, deterministic) +} +func (dst *ListRecommendationsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListRecommendationsResponse.Merge(dst, src) +} +func (m *ListRecommendationsResponse) XXX_Size() int { + return xxx_messageInfo_ListRecommendationsResponse.Size(m) +} +func (m *ListRecommendationsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListRecommendationsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListRecommendationsResponse proto.InternalMessageInfo + +func (m *ListRecommendationsResponse) GetProductIds() []string { + if m != nil { + return m.ProductIds + } + return nil +} + +type Product struct { + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` + PriceUsd *MoneyAmount `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd,proto3" json:"price_usd,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Product) Reset() { *m = Product{} } +func (m *Product) String() string { return proto.CompactTextString(m) } +func (*Product) ProtoMessage() {} +func (*Product) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{8} +} +func (m *Product) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Product.Unmarshal(m, b) +} +func (m *Product) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Product.Marshal(b, m, deterministic) +} +func (dst *Product) XXX_Merge(src proto.Message) { + xxx_messageInfo_Product.Merge(dst, src) +} +func (m *Product) XXX_Size() int { + return xxx_messageInfo_Product.Size(m) +} +func (m *Product) XXX_DiscardUnknown() { + xxx_messageInfo_Product.DiscardUnknown(m) +} + +var xxx_messageInfo_Product proto.InternalMessageInfo + +func (m *Product) GetId() int32 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *Product) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Product) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *Product) GetPicture() string { + if m != nil { + return m.Picture + } + return "" +} + +func (m *Product) GetPriceUsd() *MoneyAmount { + if m != nil { + return m.PriceUsd + } + return nil +} + +type ListProductsResponse struct { + Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListProductsResponse) Reset() { *m = ListProductsResponse{} } +func (m *ListProductsResponse) String() string { return proto.CompactTextString(m) } +func (*ListProductsResponse) ProtoMessage() {} +func (*ListProductsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{9} +} +func (m *ListProductsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListProductsResponse.Unmarshal(m, b) +} +func (m *ListProductsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListProductsResponse.Marshal(b, m, deterministic) +} +func (dst *ListProductsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListProductsResponse.Merge(dst, src) +} +func (m *ListProductsResponse) XXX_Size() int { + return xxx_messageInfo_ListProductsResponse.Size(m) +} +func (m *ListProductsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListProductsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListProductsResponse proto.InternalMessageInfo + +func (m *ListProductsResponse) GetProducts() []*Product { + if m != nil { + return m.Products + } + return nil +} + +type GetProductRequest struct { + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetProductRequest) Reset() { *m = GetProductRequest{} } +func (m *GetProductRequest) String() string { return proto.CompactTextString(m) } +func (*GetProductRequest) ProtoMessage() {} +func (*GetProductRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{10} +} +func (m *GetProductRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetProductRequest.Unmarshal(m, b) +} +func (m *GetProductRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetProductRequest.Marshal(b, m, deterministic) +} +func (dst *GetProductRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetProductRequest.Merge(dst, src) +} +func (m *GetProductRequest) XXX_Size() int { + return xxx_messageInfo_GetProductRequest.Size(m) +} +func (m *GetProductRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetProductRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetProductRequest proto.InternalMessageInfo + +func (m *GetProductRequest) GetId() int32 { + if m != nil { + return m.Id + } + return 0 +} + +type SearchProductsRequest struct { + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchProductsRequest) Reset() { *m = SearchProductsRequest{} } +func (m *SearchProductsRequest) String() string { return proto.CompactTextString(m) } +func (*SearchProductsRequest) ProtoMessage() {} +func (*SearchProductsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{11} +} +func (m *SearchProductsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchProductsRequest.Unmarshal(m, b) +} +func (m *SearchProductsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchProductsRequest.Marshal(b, m, deterministic) +} +func (dst *SearchProductsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchProductsRequest.Merge(dst, src) +} +func (m *SearchProductsRequest) XXX_Size() int { + return xxx_messageInfo_SearchProductsRequest.Size(m) +} +func (m *SearchProductsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SearchProductsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchProductsRequest proto.InternalMessageInfo + +func (m *SearchProductsRequest) GetQuery() string { + if m != nil { + return m.Query + } + return "" +} + +type SearchProductsResponse struct { + Results []*Product `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchProductsResponse) Reset() { *m = SearchProductsResponse{} } +func (m *SearchProductsResponse) String() string { return proto.CompactTextString(m) } +func (*SearchProductsResponse) ProtoMessage() {} +func (*SearchProductsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{12} +} +func (m *SearchProductsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchProductsResponse.Unmarshal(m, b) +} +func (m *SearchProductsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchProductsResponse.Marshal(b, m, deterministic) +} +func (dst *SearchProductsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchProductsResponse.Merge(dst, src) +} +func (m *SearchProductsResponse) XXX_Size() int { + return xxx_messageInfo_SearchProductsResponse.Size(m) +} +func (m *SearchProductsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SearchProductsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchProductsResponse proto.InternalMessageInfo + +func (m *SearchProductsResponse) GetResults() []*Product { + if m != nil { + return m.Results + } + return nil +} + +type GetQuoteRequest struct { + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetQuoteRequest) Reset() { *m = GetQuoteRequest{} } +func (m *GetQuoteRequest) String() string { return proto.CompactTextString(m) } +func (*GetQuoteRequest) ProtoMessage() {} +func (*GetQuoteRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{13} +} +func (m *GetQuoteRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetQuoteRequest.Unmarshal(m, b) +} +func (m *GetQuoteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetQuoteRequest.Marshal(b, m, deterministic) +} +func (dst *GetQuoteRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetQuoteRequest.Merge(dst, src) +} +func (m *GetQuoteRequest) XXX_Size() int { + return xxx_messageInfo_GetQuoteRequest.Size(m) +} +func (m *GetQuoteRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetQuoteRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetQuoteRequest proto.InternalMessageInfo + +func (m *GetQuoteRequest) GetAddress() *Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *GetQuoteRequest) GetItems() []*CartItem { + if m != nil { + return m.Items + } + return nil +} + +type GetQuoteResponse struct { + CostUsd *MoneyAmount `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetQuoteResponse) Reset() { *m = GetQuoteResponse{} } +func (m *GetQuoteResponse) String() string { return proto.CompactTextString(m) } +func (*GetQuoteResponse) ProtoMessage() {} +func (*GetQuoteResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{14} +} +func (m *GetQuoteResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetQuoteResponse.Unmarshal(m, b) +} +func (m *GetQuoteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetQuoteResponse.Marshal(b, m, deterministic) +} +func (dst *GetQuoteResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetQuoteResponse.Merge(dst, src) +} +func (m *GetQuoteResponse) XXX_Size() int { + return xxx_messageInfo_GetQuoteResponse.Size(m) +} +func (m *GetQuoteResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetQuoteResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetQuoteResponse proto.InternalMessageInfo + +func (m *GetQuoteResponse) GetCostUsd() *MoneyAmount { + if m != nil { + return m.CostUsd + } + return nil +} + +type ShipOrderRequest struct { + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Items []*CartItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ShipOrderRequest) Reset() { *m = ShipOrderRequest{} } +func (m *ShipOrderRequest) String() string { return proto.CompactTextString(m) } +func (*ShipOrderRequest) ProtoMessage() {} +func (*ShipOrderRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{15} +} +func (m *ShipOrderRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ShipOrderRequest.Unmarshal(m, b) +} +func (m *ShipOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ShipOrderRequest.Marshal(b, m, deterministic) +} +func (dst *ShipOrderRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShipOrderRequest.Merge(dst, src) +} +func (m *ShipOrderRequest) XXX_Size() int { + return xxx_messageInfo_ShipOrderRequest.Size(m) +} +func (m *ShipOrderRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ShipOrderRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ShipOrderRequest proto.InternalMessageInfo + +func (m *ShipOrderRequest) GetAddress() *Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *ShipOrderRequest) GetItems() []*CartItem { + if m != nil { + return m.Items + } + return nil +} + +type ShipOrderResponse struct { + TrackingId string `protobuf:"bytes,1,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ShipOrderResponse) Reset() { *m = ShipOrderResponse{} } +func (m *ShipOrderResponse) String() string { return proto.CompactTextString(m) } +func (*ShipOrderResponse) ProtoMessage() {} +func (*ShipOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{16} +} +func (m *ShipOrderResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ShipOrderResponse.Unmarshal(m, b) +} +func (m *ShipOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ShipOrderResponse.Marshal(b, m, deterministic) +} +func (dst *ShipOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShipOrderResponse.Merge(dst, src) +} +func (m *ShipOrderResponse) XXX_Size() int { + return xxx_messageInfo_ShipOrderResponse.Size(m) +} +func (m *ShipOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ShipOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ShipOrderResponse proto.InternalMessageInfo + +func (m *ShipOrderResponse) GetTrackingId() string { + if m != nil { + return m.TrackingId + } + return "" +} + +type Address struct { + StreetAddress_1 string `protobuf:"bytes,1,opt,name=street_address_1,json=streetAddress1,proto3" json:"street_address_1,omitempty"` + StreetAddress_2 string `protobuf:"bytes,2,opt,name=street_address_2,json=streetAddress2,proto3" json:"street_address_2,omitempty"` + City string `protobuf:"bytes,3,opt,name=city,proto3" json:"city,omitempty"` + Country string `protobuf:"bytes,4,opt,name=country,proto3" json:"country,omitempty"` + ZipCode int32 `protobuf:"varint,5,opt,name=zip_code,json=zipCode,proto3" json:"zip_code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Address) Reset() { *m = Address{} } +func (m *Address) String() string { return proto.CompactTextString(m) } +func (*Address) ProtoMessage() {} +func (*Address) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{17} +} +func (m *Address) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Address.Unmarshal(m, b) +} +func (m *Address) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Address.Marshal(b, m, deterministic) +} +func (dst *Address) XXX_Merge(src proto.Message) { + xxx_messageInfo_Address.Merge(dst, src) +} +func (m *Address) XXX_Size() int { + return xxx_messageInfo_Address.Size(m) +} +func (m *Address) XXX_DiscardUnknown() { + xxx_messageInfo_Address.DiscardUnknown(m) +} + +var xxx_messageInfo_Address proto.InternalMessageInfo + +func (m *Address) GetStreetAddress_1() string { + if m != nil { + return m.StreetAddress_1 + } + return "" +} + +func (m *Address) GetStreetAddress_2() string { + if m != nil { + return m.StreetAddress_2 + } + return "" +} + +func (m *Address) GetCity() string { + if m != nil { + return m.City + } + return "" +} + +func (m *Address) GetCountry() string { + if m != nil { + return m.Country + } + return "" +} + +func (m *Address) GetZipCode() int32 { + if m != nil { + return m.ZipCode + } + return 0 +} + +// Describes a money amount without currency. For example, decimal=2 and +// fractional=500 (or fractional=5) makes up 2.5 units. +type MoneyAmount struct { + Decimal uint32 `protobuf:"varint,1,opt,name=decimal,proto3" json:"decimal,omitempty"` + Fractional uint32 `protobuf:"varint,2,opt,name=fractional,proto3" json:"fractional,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MoneyAmount) Reset() { *m = MoneyAmount{} } +func (m *MoneyAmount) String() string { return proto.CompactTextString(m) } +func (*MoneyAmount) ProtoMessage() {} +func (*MoneyAmount) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{18} +} +func (m *MoneyAmount) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MoneyAmount.Unmarshal(m, b) +} +func (m *MoneyAmount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MoneyAmount.Marshal(b, m, deterministic) +} +func (dst *MoneyAmount) XXX_Merge(src proto.Message) { + xxx_messageInfo_MoneyAmount.Merge(dst, src) +} +func (m *MoneyAmount) XXX_Size() int { + return xxx_messageInfo_MoneyAmount.Size(m) +} +func (m *MoneyAmount) XXX_DiscardUnknown() { + xxx_messageInfo_MoneyAmount.DiscardUnknown(m) +} + +var xxx_messageInfo_MoneyAmount proto.InternalMessageInfo + +func (m *MoneyAmount) GetDecimal() uint32 { + if m != nil { + return m.Decimal + } + return 0 +} + +func (m *MoneyAmount) GetFractional() uint32 { + if m != nil { + return m.Fractional + } + return 0 +} + +type Money struct { + // The 3-letter currency code defined in ISO 4217. + CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` + Amount *MoneyAmount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Money) Reset() { *m = Money{} } +func (m *Money) String() string { return proto.CompactTextString(m) } +func (*Money) ProtoMessage() {} +func (*Money) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{19} +} +func (m *Money) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Money.Unmarshal(m, b) +} +func (m *Money) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Money.Marshal(b, m, deterministic) +} +func (dst *Money) XXX_Merge(src proto.Message) { + xxx_messageInfo_Money.Merge(dst, src) +} +func (m *Money) XXX_Size() int { + return xxx_messageInfo_Money.Size(m) +} +func (m *Money) XXX_DiscardUnknown() { + xxx_messageInfo_Money.DiscardUnknown(m) +} + +var xxx_messageInfo_Money proto.InternalMessageInfo + +func (m *Money) GetCurrencyCode() string { + if m != nil { + return m.CurrencyCode + } + return "" +} + +func (m *Money) GetAmount() *MoneyAmount { + if m != nil { + return m.Amount + } + return nil +} + +type GetSupportedCurrenciesResponse struct { + // The 3-letter currency code defined in ISO 4217. + CurrencyCodes []string `protobuf:"bytes,1,rep,name=currency_codes,json=currencyCodes,proto3" json:"currency_codes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSupportedCurrenciesResponse) Reset() { *m = GetSupportedCurrenciesResponse{} } +func (m *GetSupportedCurrenciesResponse) String() string { return proto.CompactTextString(m) } +func (*GetSupportedCurrenciesResponse) ProtoMessage() {} +func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{20} +} +func (m *GetSupportedCurrenciesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSupportedCurrenciesResponse.Unmarshal(m, b) +} +func (m *GetSupportedCurrenciesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSupportedCurrenciesResponse.Marshal(b, m, deterministic) +} +func (dst *GetSupportedCurrenciesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSupportedCurrenciesResponse.Merge(dst, src) +} +func (m *GetSupportedCurrenciesResponse) XXX_Size() int { + return xxx_messageInfo_GetSupportedCurrenciesResponse.Size(m) +} +func (m *GetSupportedCurrenciesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetSupportedCurrenciesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSupportedCurrenciesResponse proto.InternalMessageInfo + +func (m *GetSupportedCurrenciesResponse) GetCurrencyCodes() []string { + if m != nil { + return m.CurrencyCodes + } + return nil +} + +type ConversionRequest struct { + From *Money `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + // The 3-letter currency code defined in ISO 4217. + ToCode string `protobuf:"bytes,2,opt,name=to_code,json=toCode,proto3" json:"to_code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionRequest) Reset() { *m = ConversionRequest{} } +func (m *ConversionRequest) String() string { return proto.CompactTextString(m) } +func (*ConversionRequest) ProtoMessage() {} +func (*ConversionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{21} +} +func (m *ConversionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionRequest.Unmarshal(m, b) +} +func (m *ConversionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionRequest.Marshal(b, m, deterministic) +} +func (dst *ConversionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionRequest.Merge(dst, src) +} +func (m *ConversionRequest) XXX_Size() int { + return xxx_messageInfo_ConversionRequest.Size(m) +} +func (m *ConversionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionRequest proto.InternalMessageInfo + +func (m *ConversionRequest) GetFrom() *Money { + if m != nil { + return m.From + } + return nil +} + +func (m *ConversionRequest) GetToCode() string { + if m != nil { + return m.ToCode + } + return "" +} + +type ConversionResponse struct { + Result *Money `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionResponse) Reset() { *m = ConversionResponse{} } +func (m *ConversionResponse) String() string { return proto.CompactTextString(m) } +func (*ConversionResponse) ProtoMessage() {} +func (*ConversionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{22} +} +func (m *ConversionResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionResponse.Unmarshal(m, b) +} +func (m *ConversionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionResponse.Marshal(b, m, deterministic) +} +func (dst *ConversionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionResponse.Merge(dst, src) +} +func (m *ConversionResponse) XXX_Size() int { + return xxx_messageInfo_ConversionResponse.Size(m) +} +func (m *ConversionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionResponse proto.InternalMessageInfo + +func (m *ConversionResponse) GetResult() *Money { + if m != nil { + return m.Result + } + return nil +} + +type CreditCardInfo struct { + CreditCardNumber string `protobuf:"bytes,1,opt,name=credit_card_number,json=creditCardNumber,proto3" json:"credit_card_number,omitempty"` + CreditCardCvv int32 `protobuf:"varint,2,opt,name=credit_card_cvv,json=creditCardCvv,proto3" json:"credit_card_cvv,omitempty"` + CreditCardExpirationYear int32 `protobuf:"varint,3,opt,name=credit_card_expiration_year,json=creditCardExpirationYear,proto3" json:"credit_card_expiration_year,omitempty"` + CreditCardExpirationMonth int32 `protobuf:"varint,4,opt,name=credit_card_expiration_month,json=creditCardExpirationMonth,proto3" json:"credit_card_expiration_month,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreditCardInfo) Reset() { *m = CreditCardInfo{} } +func (m *CreditCardInfo) String() string { return proto.CompactTextString(m) } +func (*CreditCardInfo) ProtoMessage() {} +func (*CreditCardInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{23} +} +func (m *CreditCardInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreditCardInfo.Unmarshal(m, b) +} +func (m *CreditCardInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreditCardInfo.Marshal(b, m, deterministic) +} +func (dst *CreditCardInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreditCardInfo.Merge(dst, src) +} +func (m *CreditCardInfo) XXX_Size() int { + return xxx_messageInfo_CreditCardInfo.Size(m) +} +func (m *CreditCardInfo) XXX_DiscardUnknown() { + xxx_messageInfo_CreditCardInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_CreditCardInfo proto.InternalMessageInfo + +func (m *CreditCardInfo) GetCreditCardNumber() string { + if m != nil { + return m.CreditCardNumber + } + return "" +} + +func (m *CreditCardInfo) GetCreditCardCvv() int32 { + if m != nil { + return m.CreditCardCvv + } + return 0 +} + +func (m *CreditCardInfo) GetCreditCardExpirationYear() int32 { + if m != nil { + return m.CreditCardExpirationYear + } + return 0 +} + +func (m *CreditCardInfo) GetCreditCardExpirationMonth() int32 { + if m != nil { + return m.CreditCardExpirationMonth + } + return 0 +} + +type ChargeRequest struct { + Amount *Money `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,2,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChargeRequest) Reset() { *m = ChargeRequest{} } +func (m *ChargeRequest) String() string { return proto.CompactTextString(m) } +func (*ChargeRequest) ProtoMessage() {} +func (*ChargeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{24} +} +func (m *ChargeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChargeRequest.Unmarshal(m, b) +} +func (m *ChargeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChargeRequest.Marshal(b, m, deterministic) +} +func (dst *ChargeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChargeRequest.Merge(dst, src) +} +func (m *ChargeRequest) XXX_Size() int { + return xxx_messageInfo_ChargeRequest.Size(m) +} +func (m *ChargeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ChargeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ChargeRequest proto.InternalMessageInfo + +func (m *ChargeRequest) GetAmount() *Money { + if m != nil { + return m.Amount + } + return nil +} + +func (m *ChargeRequest) GetCreditCard() *CreditCardInfo { + if m != nil { + return m.CreditCard + } + return nil +} + +type ChargeResponse struct { + TransactionId string `protobuf:"bytes,1,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChargeResponse) Reset() { *m = ChargeResponse{} } +func (m *ChargeResponse) String() string { return proto.CompactTextString(m) } +func (*ChargeResponse) ProtoMessage() {} +func (*ChargeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{25} +} +func (m *ChargeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChargeResponse.Unmarshal(m, b) +} +func (m *ChargeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChargeResponse.Marshal(b, m, deterministic) +} +func (dst *ChargeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChargeResponse.Merge(dst, src) +} +func (m *ChargeResponse) XXX_Size() int { + return xxx_messageInfo_ChargeResponse.Size(m) +} +func (m *ChargeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ChargeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ChargeResponse proto.InternalMessageInfo + +func (m *ChargeResponse) GetTransactionId() string { + if m != nil { + return m.TransactionId + } + return "" +} + +type OrderItem struct { + Item *CartItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + Cost *Money `protobuf:"bytes,2,opt,name=cost,proto3" json:"cost,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OrderItem) Reset() { *m = OrderItem{} } +func (m *OrderItem) String() string { return proto.CompactTextString(m) } +func (*OrderItem) ProtoMessage() {} +func (*OrderItem) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{26} +} +func (m *OrderItem) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OrderItem.Unmarshal(m, b) +} +func (m *OrderItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OrderItem.Marshal(b, m, deterministic) +} +func (dst *OrderItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrderItem.Merge(dst, src) +} +func (m *OrderItem) XXX_Size() int { + return xxx_messageInfo_OrderItem.Size(m) +} +func (m *OrderItem) XXX_DiscardUnknown() { + xxx_messageInfo_OrderItem.DiscardUnknown(m) +} + +var xxx_messageInfo_OrderItem proto.InternalMessageInfo + +func (m *OrderItem) GetItem() *CartItem { + if m != nil { + return m.Item + } + return nil +} + +func (m *OrderItem) GetCost() *Money { + if m != nil { + return m.Cost + } + return nil +} + +type OrderResult struct { + OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + ShippingTrackingId string `protobuf:"bytes,2,opt,name=shipping_tracking_id,json=shippingTrackingId,proto3" json:"shipping_tracking_id,omitempty"` + ShippingCost *Money `protobuf:"bytes,3,opt,name=shipping_cost,json=shippingCost,proto3" json:"shipping_cost,omitempty"` + ShippingAddress *Address `protobuf:"bytes,4,opt,name=shipping_address,json=shippingAddress,proto3" json:"shipping_address,omitempty"` + Items []*OrderItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OrderResult) Reset() { *m = OrderResult{} } +func (m *OrderResult) String() string { return proto.CompactTextString(m) } +func (*OrderResult) ProtoMessage() {} +func (*OrderResult) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{27} +} +func (m *OrderResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OrderResult.Unmarshal(m, b) +} +func (m *OrderResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OrderResult.Marshal(b, m, deterministic) +} +func (dst *OrderResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrderResult.Merge(dst, src) +} +func (m *OrderResult) XXX_Size() int { + return xxx_messageInfo_OrderResult.Size(m) +} +func (m *OrderResult) XXX_DiscardUnknown() { + xxx_messageInfo_OrderResult.DiscardUnknown(m) +} + +var xxx_messageInfo_OrderResult proto.InternalMessageInfo + +func (m *OrderResult) GetOrderId() string { + if m != nil { + return m.OrderId + } + return "" +} + +func (m *OrderResult) GetShippingTrackingId() string { + if m != nil { + return m.ShippingTrackingId + } + return "" +} + +func (m *OrderResult) GetShippingCost() *Money { + if m != nil { + return m.ShippingCost + } + return nil +} + +func (m *OrderResult) GetShippingAddress() *Address { + if m != nil { + return m.ShippingAddress + } + return nil +} + +func (m *OrderResult) GetItems() []*OrderItem { + if m != nil { + return m.Items + } + return nil +} + +type SendOrderConfirmationRequest struct { + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Order *OrderResult `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SendOrderConfirmationRequest) Reset() { *m = SendOrderConfirmationRequest{} } +func (m *SendOrderConfirmationRequest) String() string { return proto.CompactTextString(m) } +func (*SendOrderConfirmationRequest) ProtoMessage() {} +func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{28} +} +func (m *SendOrderConfirmationRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendOrderConfirmationRequest.Unmarshal(m, b) +} +func (m *SendOrderConfirmationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendOrderConfirmationRequest.Marshal(b, m, deterministic) +} +func (dst *SendOrderConfirmationRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendOrderConfirmationRequest.Merge(dst, src) +} +func (m *SendOrderConfirmationRequest) XXX_Size() int { + return xxx_messageInfo_SendOrderConfirmationRequest.Size(m) +} +func (m *SendOrderConfirmationRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SendOrderConfirmationRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SendOrderConfirmationRequest proto.InternalMessageInfo + +func (m *SendOrderConfirmationRequest) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *SendOrderConfirmationRequest) GetOrder() *OrderResult { + if m != nil { + return m.Order + } + return nil +} + +type CreateOrderRequest struct { + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency,proto3" json:"user_currency,omitempty"` + Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateOrderRequest) Reset() { *m = CreateOrderRequest{} } +func (m *CreateOrderRequest) String() string { return proto.CompactTextString(m) } +func (*CreateOrderRequest) ProtoMessage() {} +func (*CreateOrderRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{29} +} +func (m *CreateOrderRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateOrderRequest.Unmarshal(m, b) +} +func (m *CreateOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateOrderRequest.Marshal(b, m, deterministic) +} +func (dst *CreateOrderRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateOrderRequest.Merge(dst, src) +} +func (m *CreateOrderRequest) XXX_Size() int { + return xxx_messageInfo_CreateOrderRequest.Size(m) +} +func (m *CreateOrderRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateOrderRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateOrderRequest proto.InternalMessageInfo + +func (m *CreateOrderRequest) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *CreateOrderRequest) GetUserCurrency() string { + if m != nil { + return m.UserCurrency + } + return "" +} + +func (m *CreateOrderRequest) GetAddress() *Address { + if m != nil { + return m.Address + } + return nil +} + +type CreateOrderResponse struct { + Items []*OrderItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + ShippingCost *Money `protobuf:"bytes,2,opt,name=shipping_cost,json=shippingCost,proto3" json:"shipping_cost,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateOrderResponse) Reset() { *m = CreateOrderResponse{} } +func (m *CreateOrderResponse) String() string { return proto.CompactTextString(m) } +func (*CreateOrderResponse) ProtoMessage() {} +func (*CreateOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{30} +} +func (m *CreateOrderResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateOrderResponse.Unmarshal(m, b) +} +func (m *CreateOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateOrderResponse.Marshal(b, m, deterministic) +} +func (dst *CreateOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateOrderResponse.Merge(dst, src) +} +func (m *CreateOrderResponse) XXX_Size() int { + return xxx_messageInfo_CreateOrderResponse.Size(m) +} +func (m *CreateOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateOrderResponse proto.InternalMessageInfo + +func (m *CreateOrderResponse) GetItems() []*OrderItem { + if m != nil { + return m.Items + } + return nil +} + +func (m *CreateOrderResponse) GetShippingCost() *Money { + if m != nil { + return m.ShippingCost + } + return nil +} + +type PlaceOrderRequest struct { + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserCurrency string `protobuf:"bytes,2,opt,name=user_currency,json=userCurrency,proto3" json:"user_currency,omitempty"` + Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` + CreditCard *CreditCardInfo `protobuf:"bytes,6,opt,name=credit_card,json=creditCard,proto3" json:"credit_card,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PlaceOrderRequest) Reset() { *m = PlaceOrderRequest{} } +func (m *PlaceOrderRequest) String() string { return proto.CompactTextString(m) } +func (*PlaceOrderRequest) ProtoMessage() {} +func (*PlaceOrderRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{31} +} +func (m *PlaceOrderRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PlaceOrderRequest.Unmarshal(m, b) +} +func (m *PlaceOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PlaceOrderRequest.Marshal(b, m, deterministic) +} +func (dst *PlaceOrderRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlaceOrderRequest.Merge(dst, src) +} +func (m *PlaceOrderRequest) XXX_Size() int { + return xxx_messageInfo_PlaceOrderRequest.Size(m) +} +func (m *PlaceOrderRequest) XXX_DiscardUnknown() { + xxx_messageInfo_PlaceOrderRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_PlaceOrderRequest proto.InternalMessageInfo + +func (m *PlaceOrderRequest) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *PlaceOrderRequest) GetUserCurrency() string { + if m != nil { + return m.UserCurrency + } + return "" +} + +func (m *PlaceOrderRequest) GetAddress() *Address { + if m != nil { + return m.Address + } + return nil +} + +func (m *PlaceOrderRequest) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *PlaceOrderRequest) GetCreditCard() *CreditCardInfo { + if m != nil { + return m.CreditCard + } + return nil +} + +type PlaceOrderResponse struct { + Order *OrderResult `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PlaceOrderResponse) Reset() { *m = PlaceOrderResponse{} } +func (m *PlaceOrderResponse) String() string { return proto.CompactTextString(m) } +func (*PlaceOrderResponse) ProtoMessage() {} +func (*PlaceOrderResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_demo_d65f84bf2547388d, []int{32} +} +func (m *PlaceOrderResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PlaceOrderResponse.Unmarshal(m, b) +} +func (m *PlaceOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PlaceOrderResponse.Marshal(b, m, deterministic) +} +func (dst *PlaceOrderResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlaceOrderResponse.Merge(dst, src) +} +func (m *PlaceOrderResponse) XXX_Size() int { + return xxx_messageInfo_PlaceOrderResponse.Size(m) +} +func (m *PlaceOrderResponse) XXX_DiscardUnknown() { + xxx_messageInfo_PlaceOrderResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_PlaceOrderResponse proto.InternalMessageInfo + +func (m *PlaceOrderResponse) GetOrder() *OrderResult { + if m != nil { + return m.Order + } + return nil +} + +func init() { + proto.RegisterType((*CartItem)(nil), "hipstershop.CartItem") + proto.RegisterType((*AddItemRequest)(nil), "hipstershop.AddItemRequest") + proto.RegisterType((*EmptyCartRequest)(nil), "hipstershop.EmptyCartRequest") + proto.RegisterType((*GetCartRequest)(nil), "hipstershop.GetCartRequest") + proto.RegisterType((*Cart)(nil), "hipstershop.Cart") + proto.RegisterType((*Empty)(nil), "hipstershop.Empty") + proto.RegisterType((*ListRecommendationsRequest)(nil), "hipstershop.ListRecommendationsRequest") + proto.RegisterType((*ListRecommendationsResponse)(nil), "hipstershop.ListRecommendationsResponse") + proto.RegisterType((*Product)(nil), "hipstershop.Product") + proto.RegisterType((*ListProductsResponse)(nil), "hipstershop.ListProductsResponse") + proto.RegisterType((*GetProductRequest)(nil), "hipstershop.GetProductRequest") + proto.RegisterType((*SearchProductsRequest)(nil), "hipstershop.SearchProductsRequest") + proto.RegisterType((*SearchProductsResponse)(nil), "hipstershop.SearchProductsResponse") + proto.RegisterType((*GetQuoteRequest)(nil), "hipstershop.GetQuoteRequest") + proto.RegisterType((*GetQuoteResponse)(nil), "hipstershop.GetQuoteResponse") + proto.RegisterType((*ShipOrderRequest)(nil), "hipstershop.ShipOrderRequest") + proto.RegisterType((*ShipOrderResponse)(nil), "hipstershop.ShipOrderResponse") + proto.RegisterType((*Address)(nil), "hipstershop.Address") + proto.RegisterType((*MoneyAmount)(nil), "hipstershop.MoneyAmount") + proto.RegisterType((*Money)(nil), "hipstershop.Money") + proto.RegisterType((*GetSupportedCurrenciesResponse)(nil), "hipstershop.GetSupportedCurrenciesResponse") + proto.RegisterType((*ConversionRequest)(nil), "hipstershop.ConversionRequest") + proto.RegisterType((*ConversionResponse)(nil), "hipstershop.ConversionResponse") + proto.RegisterType((*CreditCardInfo)(nil), "hipstershop.CreditCardInfo") + proto.RegisterType((*ChargeRequest)(nil), "hipstershop.ChargeRequest") + proto.RegisterType((*ChargeResponse)(nil), "hipstershop.ChargeResponse") + proto.RegisterType((*OrderItem)(nil), "hipstershop.OrderItem") + proto.RegisterType((*OrderResult)(nil), "hipstershop.OrderResult") + proto.RegisterType((*SendOrderConfirmationRequest)(nil), "hipstershop.SendOrderConfirmationRequest") + proto.RegisterType((*CreateOrderRequest)(nil), "hipstershop.CreateOrderRequest") + proto.RegisterType((*CreateOrderResponse)(nil), "hipstershop.CreateOrderResponse") + proto.RegisterType((*PlaceOrderRequest)(nil), "hipstershop.PlaceOrderRequest") + proto.RegisterType((*PlaceOrderResponse)(nil), "hipstershop.PlaceOrderResponse") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CartServiceClient is the client API for CartService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CartServiceClient interface { + AddItem(ctx context.Context, in *AddItemRequest, opts ...grpc.CallOption) (*Empty, error) + GetCart(ctx context.Context, in *GetCartRequest, opts ...grpc.CallOption) (*Cart, error) + EmptyCart(ctx context.Context, in *EmptyCartRequest, opts ...grpc.CallOption) (*Empty, error) +} + +type cartServiceClient struct { + cc *grpc.ClientConn +} + +func NewCartServiceClient(cc *grpc.ClientConn) CartServiceClient { + return &cartServiceClient{cc} +} + +func (c *cartServiceClient) AddItem(ctx context.Context, in *AddItemRequest, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/hipstershop.CartService/AddItem", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cartServiceClient) GetCart(ctx context.Context, in *GetCartRequest, opts ...grpc.CallOption) (*Cart, error) { + out := new(Cart) + err := c.cc.Invoke(ctx, "/hipstershop.CartService/GetCart", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cartServiceClient) EmptyCart(ctx context.Context, in *EmptyCartRequest, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/hipstershop.CartService/EmptyCart", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CartServiceServer is the server API for CartService service. +type CartServiceServer interface { + AddItem(context.Context, *AddItemRequest) (*Empty, error) + GetCart(context.Context, *GetCartRequest) (*Cart, error) + EmptyCart(context.Context, *EmptyCartRequest) (*Empty, error) +} + +func RegisterCartServiceServer(s *grpc.Server, srv CartServiceServer) { + s.RegisterService(&_CartService_serviceDesc, srv) +} + +func _CartService_AddItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddItemRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).AddItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.CartService/AddItem", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).AddItem(ctx, req.(*AddItemRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CartService_GetCart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).GetCart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.CartService/GetCart", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).GetCart(ctx, req.(*GetCartRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CartService_EmptyCart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EmptyCartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CartServiceServer).EmptyCart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.CartService/EmptyCart", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CartServiceServer).EmptyCart(ctx, req.(*EmptyCartRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CartService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hipstershop.CartService", + HandlerType: (*CartServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AddItem", + Handler: _CartService_AddItem_Handler, + }, + { + MethodName: "GetCart", + Handler: _CartService_GetCart_Handler, + }, + { + MethodName: "EmptyCart", + Handler: _CartService_EmptyCart_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +// RecommendationServiceClient is the client API for RecommendationService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type RecommendationServiceClient interface { + ListRecommendations(ctx context.Context, in *ListRecommendationsRequest, opts ...grpc.CallOption) (*ListRecommendationsResponse, error) +} + +type recommendationServiceClient struct { + cc *grpc.ClientConn +} + +func NewRecommendationServiceClient(cc *grpc.ClientConn) RecommendationServiceClient { + return &recommendationServiceClient{cc} +} + +func (c *recommendationServiceClient) ListRecommendations(ctx context.Context, in *ListRecommendationsRequest, opts ...grpc.CallOption) (*ListRecommendationsResponse, error) { + out := new(ListRecommendationsResponse) + err := c.cc.Invoke(ctx, "/hipstershop.RecommendationService/ListRecommendations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RecommendationServiceServer is the server API for RecommendationService service. +type RecommendationServiceServer interface { + ListRecommendations(context.Context, *ListRecommendationsRequest) (*ListRecommendationsResponse, error) +} + +func RegisterRecommendationServiceServer(s *grpc.Server, srv RecommendationServiceServer) { + s.RegisterService(&_RecommendationService_serviceDesc, srv) +} + +func _RecommendationService_ListRecommendations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRecommendationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RecommendationServiceServer).ListRecommendations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.RecommendationService/ListRecommendations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RecommendationServiceServer).ListRecommendations(ctx, req.(*ListRecommendationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _RecommendationService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hipstershop.RecommendationService", + HandlerType: (*RecommendationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListRecommendations", + Handler: _RecommendationService_ListRecommendations_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +// ProductCatalogServiceClient is the client API for ProductCatalogService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ProductCatalogServiceClient interface { + ListProducts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListProductsResponse, error) + GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) + SearchProducts(ctx context.Context, in *SearchProductsRequest, opts ...grpc.CallOption) (*SearchProductsResponse, error) +} + +type productCatalogServiceClient struct { + cc *grpc.ClientConn +} + +func NewProductCatalogServiceClient(cc *grpc.ClientConn) ProductCatalogServiceClient { + return &productCatalogServiceClient{cc} +} + +func (c *productCatalogServiceClient) ListProducts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListProductsResponse, error) { + out := new(ListProductsResponse) + err := c.cc.Invoke(ctx, "/hipstershop.ProductCatalogService/ListProducts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *productCatalogServiceClient) GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*Product, error) { + out := new(Product) + err := c.cc.Invoke(ctx, "/hipstershop.ProductCatalogService/GetProduct", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *productCatalogServiceClient) SearchProducts(ctx context.Context, in *SearchProductsRequest, opts ...grpc.CallOption) (*SearchProductsResponse, error) { + out := new(SearchProductsResponse) + err := c.cc.Invoke(ctx, "/hipstershop.ProductCatalogService/SearchProducts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ProductCatalogServiceServer is the server API for ProductCatalogService service. +type ProductCatalogServiceServer interface { + ListProducts(context.Context, *Empty) (*ListProductsResponse, error) + GetProduct(context.Context, *GetProductRequest) (*Product, error) + SearchProducts(context.Context, *SearchProductsRequest) (*SearchProductsResponse, error) +} + +func RegisterProductCatalogServiceServer(s *grpc.Server, srv ProductCatalogServiceServer) { + s.RegisterService(&_ProductCatalogService_serviceDesc, srv) +} + +func _ProductCatalogService_ListProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).ListProducts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.ProductCatalogService/ListProducts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).ListProducts(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _ProductCatalogService_GetProduct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetProductRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).GetProduct(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.ProductCatalogService/GetProduct", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).GetProduct(ctx, req.(*GetProductRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ProductCatalogService_SearchProducts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchProductsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductCatalogServiceServer).SearchProducts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.ProductCatalogService/SearchProducts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductCatalogServiceServer).SearchProducts(ctx, req.(*SearchProductsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ProductCatalogService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hipstershop.ProductCatalogService", + HandlerType: (*ProductCatalogServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListProducts", + Handler: _ProductCatalogService_ListProducts_Handler, + }, + { + MethodName: "GetProduct", + Handler: _ProductCatalogService_GetProduct_Handler, + }, + { + MethodName: "SearchProducts", + Handler: _ProductCatalogService_SearchProducts_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +// ShippingServiceClient is the client API for ShippingService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ShippingServiceClient interface { + GetQuote(ctx context.Context, in *GetQuoteRequest, opts ...grpc.CallOption) (*GetQuoteResponse, error) + ShipOrder(ctx context.Context, in *ShipOrderRequest, opts ...grpc.CallOption) (*ShipOrderResponse, error) +} + +type shippingServiceClient struct { + cc *grpc.ClientConn +} + +func NewShippingServiceClient(cc *grpc.ClientConn) ShippingServiceClient { + return &shippingServiceClient{cc} +} + +func (c *shippingServiceClient) GetQuote(ctx context.Context, in *GetQuoteRequest, opts ...grpc.CallOption) (*GetQuoteResponse, error) { + out := new(GetQuoteResponse) + err := c.cc.Invoke(ctx, "/hipstershop.ShippingService/GetQuote", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *shippingServiceClient) ShipOrder(ctx context.Context, in *ShipOrderRequest, opts ...grpc.CallOption) (*ShipOrderResponse, error) { + out := new(ShipOrderResponse) + err := c.cc.Invoke(ctx, "/hipstershop.ShippingService/ShipOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ShippingServiceServer is the server API for ShippingService service. +type ShippingServiceServer interface { + GetQuote(context.Context, *GetQuoteRequest) (*GetQuoteResponse, error) + ShipOrder(context.Context, *ShipOrderRequest) (*ShipOrderResponse, error) +} + +func RegisterShippingServiceServer(s *grpc.Server, srv ShippingServiceServer) { + s.RegisterService(&_ShippingService_serviceDesc, srv) +} + +func _ShippingService_GetQuote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetQuoteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ShippingServiceServer).GetQuote(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.ShippingService/GetQuote", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ShippingServiceServer).GetQuote(ctx, req.(*GetQuoteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ShippingService_ShipOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ShipOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ShippingServiceServer).ShipOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.ShippingService/ShipOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ShippingServiceServer).ShipOrder(ctx, req.(*ShipOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ShippingService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hipstershop.ShippingService", + HandlerType: (*ShippingServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetQuote", + Handler: _ShippingService_GetQuote_Handler, + }, + { + MethodName: "ShipOrder", + Handler: _ShippingService_ShipOrder_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +// CurrencyServiceClient is the client API for CurrencyService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CurrencyServiceClient interface { + GetSupportedCurrencies(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetSupportedCurrenciesResponse, error) + Convert(ctx context.Context, in *ConversionRequest, opts ...grpc.CallOption) (*ConversionResponse, error) +} + +type currencyServiceClient struct { + cc *grpc.ClientConn +} + +func NewCurrencyServiceClient(cc *grpc.ClientConn) CurrencyServiceClient { + return ¤cyServiceClient{cc} +} + +func (c *currencyServiceClient) GetSupportedCurrencies(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetSupportedCurrenciesResponse, error) { + out := new(GetSupportedCurrenciesResponse) + err := c.cc.Invoke(ctx, "/hipstershop.CurrencyService/GetSupportedCurrencies", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *currencyServiceClient) Convert(ctx context.Context, in *ConversionRequest, opts ...grpc.CallOption) (*ConversionResponse, error) { + out := new(ConversionResponse) + err := c.cc.Invoke(ctx, "/hipstershop.CurrencyService/Convert", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CurrencyServiceServer is the server API for CurrencyService service. +type CurrencyServiceServer interface { + GetSupportedCurrencies(context.Context, *Empty) (*GetSupportedCurrenciesResponse, error) + Convert(context.Context, *ConversionRequest) (*ConversionResponse, error) +} + +func RegisterCurrencyServiceServer(s *grpc.Server, srv CurrencyServiceServer) { + s.RegisterService(&_CurrencyService_serviceDesc, srv) +} + +func _CurrencyService_GetSupportedCurrencies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CurrencyServiceServer).GetSupportedCurrencies(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.CurrencyService/GetSupportedCurrencies", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CurrencyServiceServer).GetSupportedCurrencies(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _CurrencyService_Convert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ConversionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CurrencyServiceServer).Convert(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.CurrencyService/Convert", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CurrencyServiceServer).Convert(ctx, req.(*ConversionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CurrencyService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hipstershop.CurrencyService", + HandlerType: (*CurrencyServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetSupportedCurrencies", + Handler: _CurrencyService_GetSupportedCurrencies_Handler, + }, + { + MethodName: "Convert", + Handler: _CurrencyService_Convert_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +// PaymentServiceClient is the client API for PaymentService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type PaymentServiceClient interface { + Charge(ctx context.Context, in *ChargeRequest, opts ...grpc.CallOption) (*ChargeResponse, error) +} + +type paymentServiceClient struct { + cc *grpc.ClientConn +} + +func NewPaymentServiceClient(cc *grpc.ClientConn) PaymentServiceClient { + return &paymentServiceClient{cc} +} + +func (c *paymentServiceClient) Charge(ctx context.Context, in *ChargeRequest, opts ...grpc.CallOption) (*ChargeResponse, error) { + out := new(ChargeResponse) + err := c.cc.Invoke(ctx, "/hipstershop.PaymentService/Charge", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// PaymentServiceServer is the server API for PaymentService service. +type PaymentServiceServer interface { + Charge(context.Context, *ChargeRequest) (*ChargeResponse, error) +} + +func RegisterPaymentServiceServer(s *grpc.Server, srv PaymentServiceServer) { + s.RegisterService(&_PaymentService_serviceDesc, srv) +} + +func _PaymentService_Charge_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChargeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PaymentServiceServer).Charge(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.PaymentService/Charge", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PaymentServiceServer).Charge(ctx, req.(*ChargeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _PaymentService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hipstershop.PaymentService", + HandlerType: (*PaymentServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Charge", + Handler: _PaymentService_Charge_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +// EmailServiceClient is the client API for EmailService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type EmailServiceClient interface { + SendOrderConfirmation(ctx context.Context, in *SendOrderConfirmationRequest, opts ...grpc.CallOption) (*Empty, error) +} + +type emailServiceClient struct { + cc *grpc.ClientConn +} + +func NewEmailServiceClient(cc *grpc.ClientConn) EmailServiceClient { + return &emailServiceClient{cc} +} + +func (c *emailServiceClient) SendOrderConfirmation(ctx context.Context, in *SendOrderConfirmationRequest, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/hipstershop.EmailService/SendOrderConfirmation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// EmailServiceServer is the server API for EmailService service. +type EmailServiceServer interface { + SendOrderConfirmation(context.Context, *SendOrderConfirmationRequest) (*Empty, error) +} + +func RegisterEmailServiceServer(s *grpc.Server, srv EmailServiceServer) { + s.RegisterService(&_EmailService_serviceDesc, srv) +} + +func _EmailService_SendOrderConfirmation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendOrderConfirmationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EmailServiceServer).SendOrderConfirmation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.EmailService/SendOrderConfirmation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EmailServiceServer).SendOrderConfirmation(ctx, req.(*SendOrderConfirmationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _EmailService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hipstershop.EmailService", + HandlerType: (*EmailServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SendOrderConfirmation", + Handler: _EmailService_SendOrderConfirmation_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +// CheckoutServiceClient is the client API for CheckoutService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CheckoutServiceClient interface { + CreateOrder(ctx context.Context, in *CreateOrderRequest, opts ...grpc.CallOption) (*CreateOrderResponse, error) + PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) +} + +type checkoutServiceClient struct { + cc *grpc.ClientConn +} + +func NewCheckoutServiceClient(cc *grpc.ClientConn) CheckoutServiceClient { + return &checkoutServiceClient{cc} +} + +func (c *checkoutServiceClient) CreateOrder(ctx context.Context, in *CreateOrderRequest, opts ...grpc.CallOption) (*CreateOrderResponse, error) { + out := new(CreateOrderResponse) + err := c.cc.Invoke(ctx, "/hipstershop.CheckoutService/CreateOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *checkoutServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*PlaceOrderResponse, error) { + out := new(PlaceOrderResponse) + err := c.cc.Invoke(ctx, "/hipstershop.CheckoutService/PlaceOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CheckoutServiceServer is the server API for CheckoutService service. +type CheckoutServiceServer interface { + CreateOrder(context.Context, *CreateOrderRequest) (*CreateOrderResponse, error) + PlaceOrder(context.Context, *PlaceOrderRequest) (*PlaceOrderResponse, error) +} + +func RegisterCheckoutServiceServer(s *grpc.Server, srv CheckoutServiceServer) { + s.RegisterService(&_CheckoutService_serviceDesc, srv) +} + +func _CheckoutService_CreateOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CheckoutServiceServer).CreateOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.CheckoutService/CreateOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CheckoutServiceServer).CreateOrder(ctx, req.(*CreateOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CheckoutService_PlaceOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PlaceOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CheckoutServiceServer).PlaceOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hipstershop.CheckoutService/PlaceOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CheckoutServiceServer).PlaceOrder(ctx, req.(*PlaceOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CheckoutService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hipstershop.CheckoutService", + HandlerType: (*CheckoutServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateOrder", + Handler: _CheckoutService_CreateOrder_Handler, + }, + { + MethodName: "PlaceOrder", + Handler: _CheckoutService_PlaceOrder_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "demo.proto", +} + +func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_d65f84bf2547388d) } + +var fileDescriptor_demo_d65f84bf2547388d = []byte{ + // 1482 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x72, 0xd3, 0x46, + 0x1b, 0x8e, 0x92, 0x38, 0xb6, 0x5f, 0xc7, 0x4e, 0xb2, 0x24, 0x7c, 0x46, 0x81, 0x90, 0x6f, 0x33, + 0x1f, 0x5f, 0xf8, 0x69, 0x06, 0x42, 0x3b, 0x1c, 0x94, 0x16, 0x18, 0x93, 0x31, 0x9e, 0x81, 0x42, + 0x15, 0xe8, 0xb4, 0xc3, 0x0c, 0x1e, 0x21, 0x6d, 0xb0, 0x8a, 0xa5, 0x15, 0xab, 0x55, 0xa6, 0x66, + 0x7a, 0x44, 0x6f, 0xa4, 0x47, 0x3d, 0xe8, 0x05, 0xf4, 0xa8, 0x57, 0xd0, 0xf3, 0xde, 0x42, 0xaf, + 0xa3, 0xb3, 0xab, 0x5d, 0xfd, 0x59, 0x4e, 0xc2, 0x49, 0x7b, 0xe6, 0xdd, 0x7d, 0xf6, 0x7d, 0x9f, + 0x7d, 0xff, 0x65, 0x00, 0x97, 0xf8, 0x74, 0x2f, 0x64, 0x94, 0x53, 0xd4, 0x1a, 0x79, 0x61, 0xc4, + 0x09, 0x8b, 0x46, 0x34, 0xc4, 0x07, 0xd0, 0xe8, 0xd9, 0x8c, 0x0f, 0x38, 0xf1, 0xd1, 0x25, 0x80, + 0x90, 0x51, 0x37, 0x76, 0xf8, 0xd0, 0x73, 0xbb, 0xc6, 0xb6, 0xb1, 0xdb, 0xb4, 0x9a, 0x6a, 0x67, + 0xe0, 0x22, 0x13, 0x1a, 0xef, 0x62, 0x3b, 0xe0, 0x1e, 0x9f, 0x74, 0xe7, 0xb7, 0x8d, 0xdd, 0x9a, + 0x95, 0xae, 0xf1, 0x73, 0xe8, 0x3c, 0x70, 0x5d, 0x21, 0xc5, 0x22, 0xef, 0x62, 0x12, 0x71, 0xf4, + 0x1f, 0xa8, 0xc7, 0x11, 0x61, 0x99, 0xa4, 0x25, 0xb1, 0x1c, 0xb8, 0xe8, 0x2a, 0x2c, 0x7a, 0x9c, + 0xf8, 0x52, 0x44, 0x6b, 0x7f, 0x63, 0x2f, 0xc7, 0x66, 0x4f, 0x53, 0xb1, 0x24, 0x04, 0x5f, 0x87, + 0xd5, 0x03, 0x3f, 0xe4, 0x13, 0xb1, 0x7d, 0x9a, 0x5c, 0x7c, 0x15, 0x3a, 0x7d, 0xc2, 0xcf, 0x04, + 0x7d, 0x0c, 0x8b, 0x02, 0x37, 0x9b, 0xe3, 0x75, 0xa8, 0x09, 0x02, 0x51, 0x77, 0x7e, 0x7b, 0x61, + 0x36, 0xc9, 0x04, 0x83, 0xeb, 0x50, 0x93, 0x2c, 0xf1, 0x37, 0x60, 0x3e, 0xf6, 0x22, 0x6e, 0x11, + 0x87, 0xfa, 0x3e, 0x09, 0x5c, 0x9b, 0x7b, 0x34, 0x88, 0x4e, 0x35, 0xc8, 0x65, 0x68, 0x65, 0x66, + 0x4f, 0x54, 0x36, 0x2d, 0x48, 0xed, 0x1e, 0xe1, 0x2f, 0x61, 0xb3, 0x52, 0x6e, 0x14, 0xd2, 0x20, + 0x22, 0xe5, 0xfb, 0xc6, 0xd4, 0xfd, 0x9f, 0x0d, 0xa8, 0x3f, 0x4b, 0x96, 0xa8, 0x03, 0xf3, 0x8a, + 0x40, 0xcd, 0x9a, 0xf7, 0x5c, 0x84, 0x60, 0x31, 0xb0, 0x7d, 0x22, 0xbd, 0xd1, 0xb4, 0xe4, 0x6f, + 0xb4, 0x0d, 0x2d, 0x97, 0x44, 0x0e, 0xf3, 0x42, 0xa1, 0xa8, 0xbb, 0x20, 0x8f, 0xf2, 0x5b, 0xa8, + 0x0b, 0xf5, 0xd0, 0x73, 0x78, 0xcc, 0x48, 0x77, 0x51, 0x9e, 0xea, 0x25, 0xfa, 0x0c, 0x9a, 0x21, + 0xf3, 0x1c, 0x32, 0x8c, 0x23, 0xb7, 0x5b, 0x93, 0x2e, 0xee, 0x16, 0xac, 0xf7, 0x84, 0x06, 0x64, + 0xf2, 0xc0, 0xa7, 0x71, 0xc0, 0xad, 0x86, 0x84, 0xbe, 0x88, 0x5c, 0xfc, 0x08, 0xd6, 0xc5, 0x13, + 0x15, 0xcb, 0xec, 0x6d, 0x37, 0xa1, 0xa1, 0x1e, 0x92, 0x3c, 0xac, 0xb5, 0xbf, 0x5e, 0x90, 0xa6, + 0x2e, 0x58, 0x29, 0x0a, 0xef, 0xc0, 0x5a, 0x9f, 0x68, 0x41, 0xda, 0xf6, 0xa5, 0x57, 0xe3, 0x4f, + 0x60, 0xe3, 0x90, 0xd8, 0xcc, 0x19, 0x65, 0x0a, 0x13, 0xe0, 0x3a, 0xd4, 0xde, 0xc5, 0x84, 0x4d, + 0x94, 0x8b, 0x92, 0x05, 0x7e, 0x04, 0xe7, 0xcb, 0x70, 0xc5, 0x6f, 0x0f, 0xea, 0x8c, 0x44, 0xf1, + 0xf8, 0x14, 0x7a, 0x1a, 0x84, 0x03, 0x58, 0xe9, 0x13, 0xfe, 0x75, 0x4c, 0x39, 0xd1, 0x2a, 0xf7, + 0xa0, 0x6e, 0xbb, 0x2e, 0x23, 0x51, 0x24, 0x95, 0x96, 0x45, 0x3c, 0x48, 0xce, 0x2c, 0x0d, 0xfa, + 0xb8, 0xd8, 0xec, 0xc3, 0x6a, 0xa6, 0x4f, 0x71, 0xbe, 0x0d, 0x0d, 0x87, 0x46, 0x5c, 0x7a, 0xc8, + 0x38, 0xc5, 0x43, 0x75, 0x81, 0x14, 0x0e, 0xa2, 0xb0, 0x7a, 0x38, 0xf2, 0xc2, 0xa7, 0xcc, 0x25, + 0xec, 0x1f, 0x61, 0xfe, 0x29, 0xac, 0xe5, 0x14, 0x66, 0xa1, 0xce, 0x99, 0xed, 0xbc, 0xf5, 0x82, + 0x37, 0x59, 0x1e, 0x81, 0xde, 0x1a, 0xb8, 0xf8, 0x17, 0x03, 0xea, 0x4a, 0x2f, 0xda, 0x85, 0xd5, + 0x88, 0x33, 0x42, 0xf8, 0x50, 0x11, 0x18, 0xde, 0x52, 0x37, 0x3a, 0xc9, 0xbe, 0x02, 0xde, 0xaa, + 0x40, 0xee, 0xab, 0x84, 0x28, 0x22, 0xf7, 0x45, 0xba, 0x38, 0xa2, 0xfe, 0x25, 0x39, 0x21, 0x7f, + 0x8b, 0x64, 0x70, 0x84, 0xb1, 0xd8, 0x44, 0x27, 0x83, 0x5a, 0xa2, 0x0b, 0xd0, 0x78, 0xef, 0x85, + 0x43, 0x87, 0xba, 0x44, 0xe6, 0x42, 0xcd, 0xaa, 0xbf, 0xf7, 0xc2, 0x1e, 0x75, 0x09, 0xee, 0x43, + 0x2b, 0x67, 0x67, 0x21, 0xc3, 0x25, 0x8e, 0xe7, 0xdb, 0x63, 0x49, 0xb1, 0x6d, 0xe9, 0x25, 0xda, + 0x02, 0x38, 0x62, 0xb6, 0x23, 0xd2, 0xce, 0x1e, 0x4b, 0x56, 0x6d, 0x2b, 0xb7, 0x83, 0x5f, 0x41, + 0x4d, 0x0a, 0x42, 0x3b, 0xd0, 0x76, 0x62, 0xc6, 0x48, 0xe0, 0x4c, 0x12, 0x8d, 0xc9, 0x5b, 0x97, + 0xf5, 0xa6, 0x50, 0x8b, 0x6e, 0xc2, 0x92, 0x2d, 0x35, 0xaa, 0xf2, 0x3b, 0xdb, 0xf3, 0x0a, 0x87, + 0xfb, 0xb0, 0xd5, 0x27, 0xfc, 0x30, 0x0e, 0x43, 0xca, 0x38, 0x71, 0x7b, 0x89, 0x34, 0x8f, 0x64, + 0x39, 0xf0, 0x3f, 0xe8, 0x14, 0x14, 0xeb, 0x12, 0xd4, 0xce, 0x6b, 0x8e, 0xf0, 0x73, 0x58, 0xeb, + 0xd1, 0xe0, 0x98, 0xb0, 0xc8, 0xa3, 0x81, 0x0e, 0xa1, 0x2b, 0xb0, 0x78, 0xc4, 0xa8, 0xaf, 0xe2, + 0x07, 0x4d, 0xb3, 0xb1, 0xe4, 0xb9, 0x28, 0x9e, 0x9c, 0x26, 0xcf, 0x4a, 0x1c, 0xb3, 0xc4, 0xa9, + 0xb4, 0xe3, 0x7d, 0x40, 0x79, 0xa9, 0x8a, 0xd2, 0x35, 0x58, 0x4a, 0x32, 0xee, 0x04, 0xc1, 0x0a, + 0x81, 0xff, 0x32, 0xa0, 0xd3, 0x63, 0xc4, 0xf5, 0x44, 0xef, 0x70, 0x07, 0xc1, 0x11, 0x45, 0x37, + 0x00, 0x39, 0x72, 0x67, 0xe8, 0xd8, 0xcc, 0x1d, 0x06, 0xb1, 0xff, 0x9a, 0x30, 0x65, 0xcf, 0x55, + 0x27, 0xc5, 0x7e, 0x25, 0xf7, 0xd1, 0x15, 0x58, 0xc9, 0xa3, 0x9d, 0xe3, 0x63, 0xd5, 0x1e, 0xdb, + 0x19, 0xb4, 0x77, 0x7c, 0x8c, 0xbe, 0x80, 0xcd, 0x3c, 0x8e, 0xfc, 0x10, 0x7a, 0x4c, 0x96, 0xf2, + 0xe1, 0x84, 0xd8, 0x4c, 0x86, 0x54, 0xcd, 0xea, 0x66, 0x77, 0x0e, 0x52, 0xc0, 0x77, 0xc4, 0x66, + 0xe8, 0x1e, 0x5c, 0x9c, 0x71, 0xdd, 0xa7, 0x01, 0x1f, 0xc9, 0xd8, 0xab, 0x59, 0x17, 0xaa, 0xee, + 0x3f, 0x11, 0x00, 0x3c, 0x81, 0x76, 0x6f, 0x64, 0xb3, 0x37, 0x69, 0xe5, 0xb9, 0x96, 0x06, 0xc3, + 0x09, 0x56, 0x4a, 0x10, 0xe8, 0x2e, 0xb4, 0x72, 0xda, 0x55, 0xf4, 0x6c, 0x16, 0x33, 0xb8, 0x60, + 0x44, 0x0b, 0x32, 0x26, 0xf8, 0x0e, 0x74, 0xb4, 0xea, 0x2c, 0x68, 0x38, 0xb3, 0x83, 0x28, 0x89, + 0xe3, 0x2c, 0x99, 0xdb, 0xb9, 0xdd, 0x81, 0x8b, 0x5f, 0x41, 0x53, 0x56, 0x00, 0x39, 0x9f, 0xe8, + 0xc9, 0xc1, 0x38, 0x75, 0x72, 0x10, 0x71, 0x25, 0x2a, 0x97, 0xe2, 0x59, 0x19, 0x57, 0xe2, 0x1c, + 0x7f, 0x98, 0x87, 0x96, 0x2e, 0x31, 0xf1, 0x98, 0x8b, 0x8c, 0xa5, 0x62, 0x99, 0x11, 0xaa, 0xcb, + 0xf5, 0xc0, 0x45, 0x37, 0x61, 0x3d, 0x1a, 0x79, 0x61, 0x28, 0x6a, 0x4f, 0xbe, 0x08, 0x25, 0xf1, + 0x88, 0xf4, 0xd9, 0xf3, 0xb4, 0x18, 0xa1, 0x3b, 0xd0, 0x4e, 0x6f, 0x48, 0x36, 0x0b, 0x33, 0xd9, + 0x2c, 0x6b, 0x60, 0x8f, 0x46, 0x1c, 0xdd, 0x83, 0xd5, 0xf4, 0xa2, 0xae, 0xb0, 0x8b, 0x27, 0x54, + 0xd8, 0x15, 0x8d, 0xd6, 0xa5, 0xef, 0x86, 0xae, 0xb4, 0x35, 0x59, 0x69, 0xcf, 0x17, 0x6e, 0xa5, + 0x06, 0xd5, 0xa5, 0xd6, 0x85, 0x8b, 0x87, 0x24, 0x70, 0xe5, 0x7e, 0x8f, 0x06, 0x47, 0x1e, 0xf3, + 0x65, 0xd8, 0xe4, 0x9a, 0x22, 0xf1, 0x6d, 0x6f, 0xac, 0x9b, 0xa2, 0x5c, 0xa0, 0x3d, 0xa8, 0x49, + 0xd3, 0x54, 0x56, 0x92, 0x9c, 0x4d, 0xad, 0x04, 0x86, 0x3f, 0x18, 0x80, 0x7a, 0x8c, 0xd8, 0x9c, + 0x14, 0x9a, 0xc8, 0xcc, 0xb1, 0x68, 0x07, 0xda, 0xf2, 0x40, 0x57, 0x11, 0x65, 0xe8, 0x65, 0xb1, + 0xa9, 0xaa, 0xd0, 0x24, 0xdf, 0x82, 0x16, 0xce, 0xd0, 0x82, 0xf0, 0x8f, 0x70, 0xae, 0xc0, 0x41, + 0x45, 0x63, 0x6a, 0x2f, 0xe3, 0x0c, 0xf6, 0x9a, 0xf6, 0xeb, 0xfc, 0xd9, 0xfc, 0x8a, 0xff, 0x34, + 0x60, 0xed, 0xd9, 0xd8, 0x76, 0xfe, 0x45, 0x0b, 0x64, 0xce, 0xac, 0xe5, 0x9d, 0x59, 0x4a, 0xef, + 0xa5, 0x8f, 0x4b, 0xef, 0x87, 0x80, 0xf2, 0xcf, 0x4a, 0x67, 0x23, 0x15, 0x20, 0xc6, 0x99, 0x02, + 0x64, 0xff, 0x0f, 0x03, 0x5a, 0x22, 0x8d, 0x0f, 0x09, 0x3b, 0xf6, 0x1c, 0x82, 0xee, 0xca, 0x56, + 0x2e, 0x33, 0x7f, 0xb3, 0xfc, 0xa6, 0xdc, 0x97, 0x86, 0x59, 0xb4, 0x7b, 0x32, 0x8a, 0xcf, 0xa1, + 0xcf, 0xa1, 0xae, 0x3e, 0x07, 0x4a, 0xb7, 0x8b, 0x1f, 0x09, 0xe6, 0xda, 0x54, 0x19, 0xc1, 0x73, + 0xe8, 0x3e, 0x34, 0xd3, 0x0f, 0x0f, 0x74, 0x69, 0x5a, 0x7e, 0x5e, 0x40, 0xa5, 0xfa, 0xfd, 0x9f, + 0x0c, 0xd8, 0x28, 0x0e, 0xec, 0xfa, 0x59, 0xdf, 0xc3, 0xb9, 0x8a, 0x69, 0x1e, 0xfd, 0xbf, 0x20, + 0x66, 0xf6, 0x77, 0x84, 0xb9, 0x7b, 0x3a, 0x30, 0x71, 0x80, 0x60, 0x31, 0x0f, 0x1b, 0x6a, 0x06, + 0xed, 0xd9, 0xdc, 0x1e, 0xd3, 0x37, 0x9a, 0x45, 0x1f, 0x96, 0xf3, 0x03, 0x37, 0xaa, 0x78, 0x85, + 0xf9, 0xdf, 0x29, 0x4d, 0xe5, 0xf9, 0x17, 0xcf, 0xa1, 0x87, 0x00, 0xd9, 0xbc, 0x8d, 0xb6, 0xca, + 0xa6, 0x2e, 0x0e, 0xe2, 0x66, 0xe5, 0x78, 0x8c, 0xe7, 0xd0, 0x4b, 0xe8, 0x14, 0x27, 0x6c, 0x84, + 0x0b, 0xc8, 0xca, 0x69, 0xdd, 0xdc, 0x39, 0x11, 0x93, 0x5a, 0xe1, 0x57, 0x03, 0x56, 0x0e, 0x55, + 0x1e, 0xea, 0xf7, 0x0f, 0xa0, 0xa1, 0x07, 0x63, 0x74, 0xb1, 0x4c, 0x3a, 0x3f, 0x9f, 0x9b, 0x97, + 0x66, 0x9c, 0xa6, 0x16, 0x78, 0x0c, 0xcd, 0x74, 0x52, 0x2d, 0x05, 0x4b, 0x79, 0x64, 0x36, 0xb7, + 0x66, 0x1d, 0xa7, 0x64, 0x7f, 0x37, 0x60, 0x45, 0x27, 0xb7, 0x26, 0xfb, 0x12, 0xce, 0x57, 0xcf, + 0x60, 0x95, 0x6e, 0xbb, 0x5e, 0x26, 0x7c, 0xc2, 0xf0, 0x26, 0xe9, 0xd7, 0x93, 0x09, 0xaa, 0xec, + 0xbd, 0xa9, 0x69, 0xcd, 0xbc, 0x3c, 0xf3, 0x3c, 0xa5, 0xff, 0x02, 0x3a, 0xcf, 0xec, 0x89, 0x4f, + 0x82, 0x34, 0x8d, 0x7b, 0xb0, 0x94, 0xf4, 0x7e, 0x64, 0x16, 0xaf, 0xe7, 0x67, 0x11, 0x73, 0xb3, + 0xf2, 0x2c, 0x15, 0x3b, 0x82, 0xe5, 0x03, 0x51, 0xa8, 0xb4, 0xd0, 0x6f, 0xc5, 0x07, 0x5c, 0x45, + 0xcb, 0x42, 0x57, 0x4b, 0x21, 0x31, 0xbb, 0xad, 0xcd, 0x48, 0xdc, 0xdf, 0x84, 0xfd, 0x47, 0xc4, + 0x79, 0x4b, 0xe3, 0xf4, 0x09, 0x16, 0xb4, 0x72, 0x5d, 0x03, 0x5d, 0x2e, 0xd7, 0xc5, 0x52, 0x4f, + 0x33, 0xb7, 0x67, 0x03, 0x52, 0xb3, 0x3f, 0x05, 0xc8, 0x6a, 0x66, 0xc9, 0xf2, 0x53, 0x3d, 0xa2, + 0x64, 0xf9, 0xe9, 0x62, 0x8b, 0xe7, 0x5e, 0x2f, 0xc9, 0x7f, 0x77, 0x6e, 0xff, 0x1d, 0x00, 0x00, + 0xff, 0xff, 0xfe, 0x73, 0x50, 0xfe, 0xeb, 0x11, 0x00, 0x00, +} diff --git a/src/productcatalogservice/server.go b/src/productcatalogservice/server.go new file mode 100644 index 0000000..2b2fa1d --- /dev/null +++ b/src/productcatalogservice/server.go @@ -0,0 +1,66 @@ +package main + +import ( + "context" + "flag" + "fmt" + "log" + "net" + "strings" + + pb "./genproto" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +var port = flag.Int("port", 3550, "port to listen at") + +var catalog = []*pb.Product{ + {Id: 1, Name: "shirt", Description: "nice shirt", Picture: "picture1", PriceUsd: &pb.MoneyAmount{Decimal: 53}}, + {Id: 2, Name: "pants", Description: "nice pants", Picture: "picture2", PriceUsd: &pb.MoneyAmount{Decimal: 81}}, + {Id: 3, Name: "hat", Description: "nice hat", Picture: "picture3", PriceUsd: &pb.MoneyAmount{Decimal: 20}}, +} + +func main() { + flag.Parse() + run(*port) + select {} +} + +func run(port int) string { + l, err := net.Listen("tcp", fmt.Sprintf(":%d", port)) + if err != nil { + log.Fatal(err) + } + srv := grpc.NewServer() + pb.RegisterProductCatalogServiceServer(srv, &productCatalog{}) + go srv.Serve(l) + return l.Addr().String() +} + +type productCatalog struct{} + +func (p *productCatalog) ListProducts(context.Context, *pb.Empty) (*pb.ListProductsResponse, error) { + return &pb.ListProductsResponse{Products: catalog}, nil +} + +func (p *productCatalog) GetProduct(ctx context.Context, req *pb.GetProductRequest) (*pb.Product, error) { + for _, p := range catalog { + if req.Id == p.Id { + return p, nil + } + } + return nil, status.Errorf(codes.NotFound, "no product with ID %d", req.Id) +} + +func (p *productCatalog) SearchProducts(ctx context.Context, req *pb.SearchProductsRequest) (*pb.SearchProductsResponse, error) { + // Intepret query as a substring match in name or description. + var ps []*pb.Product + for _, p := range catalog { + if strings.Contains(p.Name, req.Query) || strings.Contains(p.Description, req.Query) { + ps = append(ps, p) + } + } + return &pb.SearchProductsResponse{Results: ps}, nil +} diff --git a/src/productcatalogservice/server_test.go b/src/productcatalogservice/server_test.go new file mode 100644 index 0000000..381faed --- /dev/null +++ b/src/productcatalogservice/server_test.go @@ -0,0 +1,51 @@ +package main + +import ( + "context" + "testing" + + pb "./genproto" + "github.com/golang/protobuf/proto" + "github.com/google/go-cmp/cmp" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func TestServer(t *testing.T) { + ctx := context.Background() + addr := run(0) + conn, err := grpc.Dial(addr, grpc.WithInsecure()) + if err != nil { + t.Fatal(err) + } + defer conn.Close() + client := pb.NewProductCatalogServiceClient(conn) + res, err := client.ListProducts(ctx, &pb.Empty{}) + if err != nil { + t.Fatal(err) + } + if diff := cmp.Diff(res.Products, catalog, cmp.Comparer(proto.Equal)); diff != "" { + t.Error(diff) + } + + got, err := client.GetProduct(ctx, &pb.GetProductRequest{Id: 2}) + if err != nil { + t.Fatal(err) + } + if want := catalog[1]; !proto.Equal(got, want) { + t.Errorf("got %v, want %v", got, want) + } + _, err = client.GetProduct(ctx, &pb.GetProductRequest{Id: -1}) + if got, want := status.Code(err), codes.NotFound; got != want { + t.Errorf("got %s, want %s", got, want) + } + + sres, err := client.SearchProducts(ctx, &pb.SearchProductsRequest{Query: "nice"}) + if err != nil { + t.Fatal(err) + } + if diff := cmp.Diff(sres.Results, catalog, cmp.Comparer(proto.Equal)); diff != "" { + t.Error(diff) + } +}