From 6c2336b21e3028b719069dd5ddacf33c7b409a3a Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Wed, 27 Jun 2018 14:31:38 -0700 Subject: [PATCH] frontend: money proto migration Signed-off-by: Ahmet Alp Balkan --- src/frontend/genproto/demo.pb.go | 359 ++++++++++++++----------------- src/frontend/handlers.go | 18 +- src/frontend/main.go | 2 +- src/frontend/money/money.go | 4 +- 4 files changed, 172 insertions(+), 211 deletions(-) diff --git a/src/frontend/genproto/demo.pb.go b/src/frontend/genproto/demo.pb.go index d547682..7e64573 100644 --- a/src/frontend/genproto/demo.pb.go +++ b/src/frontend/genproto/demo.pb.go @@ -35,7 +35,7 @@ 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_40506d781b7ed975, []int{0} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{0} } func (m *CartItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CartItem.Unmarshal(m, b) @@ -81,7 +81,7 @@ 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_40506d781b7ed975, []int{1} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{1} } func (m *AddItemRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddItemRequest.Unmarshal(m, b) @@ -126,7 +126,7 @@ 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_40506d781b7ed975, []int{2} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{2} } func (m *EmptyCartRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_EmptyCartRequest.Unmarshal(m, b) @@ -164,7 +164,7 @@ 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_40506d781b7ed975, []int{3} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{3} } func (m *GetCartRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetCartRequest.Unmarshal(m, b) @@ -203,7 +203,7 @@ 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_40506d781b7ed975, []int{4} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{4} } func (m *Cart) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Cart.Unmarshal(m, b) @@ -247,7 +247,7 @@ 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_40506d781b7ed975, []int{5} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{5} } func (m *Empty) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Empty.Unmarshal(m, b) @@ -279,7 +279,7 @@ func (m *ListRecommendationsRequest) Reset() { *m = ListRecommendationsR func (m *ListRecommendationsRequest) String() string { return proto.CompactTextString(m) } func (*ListRecommendationsRequest) ProtoMessage() {} func (*ListRecommendationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_demo_40506d781b7ed975, []int{6} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{6} } func (m *ListRecommendationsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListRecommendationsRequest.Unmarshal(m, b) @@ -324,7 +324,7 @@ func (m *ListRecommendationsResponse) Reset() { *m = ListRecommendations func (m *ListRecommendationsResponse) String() string { return proto.CompactTextString(m) } func (*ListRecommendationsResponse) ProtoMessage() {} func (*ListRecommendationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_demo_40506d781b7ed975, []int{7} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{7} } func (m *ListRecommendationsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListRecommendationsResponse.Unmarshal(m, b) @@ -352,21 +352,21 @@ func (m *ListRecommendationsResponse) GetProductIds() []string { } type Product struct { - Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"` - Picture string `protobuf:"bytes,4,opt,name=picture" json:"picture,omitempty"` - PriceUsd *MoneyAmount `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd" json:"price_usd,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"` + Picture string `protobuf:"bytes,4,opt,name=picture" json:"picture,omitempty"` + PriceUsd *Money `protobuf:"bytes,5,opt,name=price_usd,json=priceUsd" 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_40506d781b7ed975, []int{8} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{8} } func (m *Product) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Product.Unmarshal(m, b) @@ -414,7 +414,7 @@ func (m *Product) GetPicture() string { return "" } -func (m *Product) GetPriceUsd() *MoneyAmount { +func (m *Product) GetPriceUsd() *Money { if m != nil { return m.PriceUsd } @@ -432,7 +432,7 @@ 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_40506d781b7ed975, []int{9} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{9} } func (m *ListProductsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListProductsResponse.Unmarshal(m, b) @@ -470,7 +470,7 @@ 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_40506d781b7ed975, []int{10} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{10} } func (m *GetProductRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetProductRequest.Unmarshal(m, b) @@ -508,7 +508,7 @@ 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_40506d781b7ed975, []int{11} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{11} } func (m *SearchProductsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchProductsRequest.Unmarshal(m, b) @@ -546,7 +546,7 @@ 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_40506d781b7ed975, []int{12} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{12} } func (m *SearchProductsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchProductsResponse.Unmarshal(m, b) @@ -585,7 +585,7 @@ 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_40506d781b7ed975, []int{13} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{13} } func (m *GetQuoteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetQuoteRequest.Unmarshal(m, b) @@ -620,17 +620,17 @@ func (m *GetQuoteRequest) GetItems() []*CartItem { } type GetQuoteResponse struct { - CostUsd *MoneyAmount `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd" json:"cost_usd,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CostUsd *Money `protobuf:"bytes,1,opt,name=cost_usd,json=costUsd" 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_40506d781b7ed975, []int{14} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{14} } func (m *GetQuoteResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetQuoteResponse.Unmarshal(m, b) @@ -650,7 +650,7 @@ func (m *GetQuoteResponse) XXX_DiscardUnknown() { var xxx_messageInfo_GetQuoteResponse proto.InternalMessageInfo -func (m *GetQuoteResponse) GetCostUsd() *MoneyAmount { +func (m *GetQuoteResponse) GetCostUsd() *Money { if m != nil { return m.CostUsd } @@ -669,7 +669,7 @@ 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_40506d781b7ed975, []int{15} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{15} } func (m *ShipOrderRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ShipOrderRequest.Unmarshal(m, b) @@ -714,7 +714,7 @@ 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_40506d781b7ed975, []int{16} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{16} } func (m *ShipOrderResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ShipOrderResponse.Unmarshal(m, b) @@ -756,7 +756,7 @@ 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_40506d781b7ed975, []int{17} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{17} } func (m *Address) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Address.Unmarshal(m, b) @@ -811,68 +811,30 @@ func (m *Address) GetZipCode() int32 { 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" json:"decimal,omitempty"` - Fractional uint32 `protobuf:"varint,2,opt,name=fractional" json:"fractional,omitempty"` +// Represents an amount of money with its currency type. +type Money struct { + // The 3-letter currency code defined in ISO 4217. + CurrencyCode string `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode" json:"currency_code,omitempty"` + // The whole units of the amount. + // For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + Units int64 `protobuf:"varint,2,opt,name=units" json:"units,omitempty"` + // Number of nano (10^-9) units of the amount. + // The value must be between -999,999,999 and +999,999,999 inclusive. + // If `units` is positive, `nanos` must be positive or zero. + // If `units` is zero, `nanos` can be positive, zero, or negative. + // If `units` is negative, `nanos` must be negative or zero. + // For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + Nanos int32 `protobuf:"varint,3,opt,name=nanos" json:"nanos,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_40506d781b7ed975, []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" json:"currency_code,omitempty"` - Amount *MoneyAmount `protobuf:"bytes,2,opt,name=amount" 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_40506d781b7ed975, []int{19} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{18} } func (m *Money) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Money.Unmarshal(m, b) @@ -899,11 +861,18 @@ func (m *Money) GetCurrencyCode() string { return "" } -func (m *Money) GetAmount() *MoneyAmount { +func (m *Money) GetUnits() int64 { if m != nil { - return m.Amount + return m.Units } - return nil + return 0 +} + +func (m *Money) GetNanos() int32 { + if m != nil { + return m.Nanos + } + return 0 } type GetSupportedCurrenciesResponse struct { @@ -918,7 +887,7 @@ func (m *GetSupportedCurrenciesResponse) Reset() { *m = GetSupportedCurr func (m *GetSupportedCurrenciesResponse) String() string { return proto.CompactTextString(m) } func (*GetSupportedCurrenciesResponse) ProtoMessage() {} func (*GetSupportedCurrenciesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_demo_40506d781b7ed975, []int{20} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{19} } func (m *GetSupportedCurrenciesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSupportedCurrenciesResponse.Unmarshal(m, b) @@ -958,7 +927,7 @@ func (m *CurrencyConversionRequest) Reset() { *m = CurrencyConversionReq func (m *CurrencyConversionRequest) String() string { return proto.CompactTextString(m) } func (*CurrencyConversionRequest) ProtoMessage() {} func (*CurrencyConversionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_demo_40506d781b7ed975, []int{21} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{20} } func (m *CurrencyConversionRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CurrencyConversionRequest.Unmarshal(m, b) @@ -1006,7 +975,7 @@ 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_40506d781b7ed975, []int{22} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{21} } func (m *CreditCardInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreditCardInfo.Unmarshal(m, b) @@ -1066,7 +1035,7 @@ 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_40506d781b7ed975, []int{23} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{22} } func (m *ChargeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChargeRequest.Unmarshal(m, b) @@ -1111,7 +1080,7 @@ 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_40506d781b7ed975, []int{24} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{23} } func (m *ChargeResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChargeResponse.Unmarshal(m, b) @@ -1150,7 +1119,7 @@ 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_40506d781b7ed975, []int{25} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{24} } func (m *OrderItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrderItem.Unmarshal(m, b) @@ -1199,7 +1168,7 @@ 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_40506d781b7ed975, []int{26} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{25} } func (m *OrderResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrderResult.Unmarshal(m, b) @@ -1266,7 +1235,7 @@ func (m *SendOrderConfirmationRequest) Reset() { *m = SendOrderConfirmat func (m *SendOrderConfirmationRequest) String() string { return proto.CompactTextString(m) } func (*SendOrderConfirmationRequest) ProtoMessage() {} func (*SendOrderConfirmationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_demo_40506d781b7ed975, []int{27} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{26} } func (m *SendOrderConfirmationRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendOrderConfirmationRequest.Unmarshal(m, b) @@ -1313,7 +1282,7 @@ 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_40506d781b7ed975, []int{28} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{27} } func (m *CreateOrderRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateOrderRequest.Unmarshal(m, b) @@ -1366,7 +1335,7 @@ 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_40506d781b7ed975, []int{29} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{28} } func (m *CreateOrderResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateOrderResponse.Unmarshal(m, b) @@ -1415,7 +1384,7 @@ 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_40506d781b7ed975, []int{30} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{29} } func (m *PlaceOrderRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PlaceOrderRequest.Unmarshal(m, b) @@ -1481,7 +1450,7 @@ 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_40506d781b7ed975, []int{31} + return fileDescriptor_demo_be349a9cb1cf0a0c, []int{30} } func (m *PlaceOrderResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PlaceOrderResponse.Unmarshal(m, b) @@ -1527,7 +1496,6 @@ func init() { 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((*CurrencyConversionRequest)(nil), "hipstershop.CurrencyConversionRequest") @@ -2294,100 +2262,99 @@ var _CheckoutService_serviceDesc = grpc.ServiceDesc{ Metadata: "demo.proto", } -func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_40506d781b7ed975) } +func init() { proto.RegisterFile("demo.proto", fileDescriptor_demo_be349a9cb1cf0a0c) } -var fileDescriptor_demo_40506d781b7ed975 = []byte{ - // 1466 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x72, 0xd3, 0xc6, - 0x17, 0x8f, 0x9c, 0x38, 0xb6, 0x8f, 0x63, 0x27, 0x59, 0x12, 0xfe, 0x46, 0x81, 0x90, 0xff, 0x66, - 0x4a, 0x43, 0xa1, 0x19, 0x30, 0xed, 0x70, 0x51, 0x5a, 0xca, 0x98, 0x8c, 0xf1, 0x0c, 0x14, 0xaa, - 0x40, 0xa7, 0x1d, 0x3a, 0x78, 0x84, 0xb4, 0xc1, 0x2a, 0xd6, 0x07, 0xab, 0x55, 0xa6, 0x66, 0x7a, - 0x45, 0x5f, 0xa4, 0x57, 0xbd, 0xe8, 0x03, 0xb4, 0xef, 0xd0, 0xfb, 0xbe, 0x42, 0x9f, 0xa3, 0xb3, - 0xab, 0x5d, 0x7d, 0x59, 0x4a, 0xc2, 0x4d, 0x7b, 0xe7, 0xdd, 0xfd, 0xed, 0x39, 0xbf, 0x3d, 0xdf, - 0x32, 0x80, 0x4d, 0x5c, 0x7f, 0x3f, 0xa0, 0x3e, 0xf3, 0x51, 0x7b, 0xe2, 0x04, 0x21, 0x23, 0x34, - 0x9c, 0xf8, 0x01, 0x3e, 0x80, 0xe6, 0xc0, 0xa4, 0x6c, 0xc4, 0x88, 0x8b, 0x2e, 0x01, 0x04, 0xd4, - 0xb7, 0x23, 0x8b, 0x8d, 0x1d, 0xbb, 0xa7, 0xed, 0x68, 0x7b, 0x2d, 0xa3, 0x25, 0x77, 0x46, 0x36, - 0xd2, 0xa1, 0xf9, 0x26, 0x32, 0x3d, 0xe6, 0xb0, 0x59, 0xaf, 0xb6, 0xa3, 0xed, 0xd5, 0x8d, 0x64, - 0x8d, 0x9f, 0x42, 0xf7, 0x9e, 0x6d, 0x73, 0x29, 0x06, 0x79, 0x13, 0x91, 0x90, 0xa1, 0xff, 0x41, - 0x23, 0x0a, 0x09, 0x4d, 0x25, 0x2d, 0xf3, 0xe5, 0xc8, 0x46, 0x57, 0x61, 0xc9, 0x61, 0xc4, 0x15, - 0x22, 0xda, 0xfd, 0xcd, 0xfd, 0x0c, 0x9b, 0x7d, 0x45, 0xc5, 0x10, 0x10, 0x7c, 0x0d, 0xd6, 0x0e, - 0xdc, 0x80, 0xcd, 0xf8, 0xf6, 0x69, 0x72, 0xf1, 0x55, 0xe8, 0x0e, 0x09, 0x3b, 0x13, 0xf4, 0x21, - 0x2c, 0x71, 0x5c, 0x35, 0xc7, 0x6b, 0x50, 0xe7, 0x04, 0xc2, 0x5e, 0x6d, 0x67, 0xb1, 0x9a, 0x64, - 0x8c, 0xc1, 0x0d, 0xa8, 0x0b, 0x96, 0xf8, 0x1b, 0xd0, 0x1f, 0x3a, 0x21, 0x33, 0x88, 0xe5, 0xbb, - 0x2e, 0xf1, 0x6c, 0x93, 0x39, 0xbe, 0x17, 0x9e, 0x6a, 0x90, 0xcb, 0xd0, 0x4e, 0xcd, 0x1e, 0xab, - 0x6c, 0x19, 0x90, 0xd8, 0x3d, 0xc4, 0x5f, 0xc0, 0x56, 0xa9, 0xdc, 0x30, 0xf0, 0xbd, 0x90, 0x14, - 0xef, 0x6b, 0x73, 0xf7, 0x7f, 0xd1, 0xa0, 0xf1, 0x24, 0x5e, 0xa2, 0x2e, 0xd4, 0x12, 0x02, 0x35, - 0xc7, 0x46, 0x08, 0x96, 0x3c, 0xd3, 0x25, 0xc2, 0x1b, 0x2d, 0x43, 0xfc, 0x46, 0x3b, 0xd0, 0xb6, - 0x49, 0x68, 0x51, 0x27, 0xe0, 0x8a, 0x7a, 0x8b, 0xe2, 0x28, 0xbb, 0x85, 0x7a, 0xd0, 0x08, 0x1c, - 0x8b, 0x45, 0x94, 0xf4, 0x96, 0xc4, 0xa9, 0x5a, 0xa2, 0x4f, 0xa1, 0x15, 0x50, 0xc7, 0x22, 0xe3, - 0x28, 0xb4, 0x7b, 0x75, 0xe1, 0xe2, 0x5e, 0xce, 0x7a, 0x8f, 0x7c, 0x8f, 0xcc, 0xee, 0xb9, 0x7e, - 0xe4, 0x31, 0xa3, 0x29, 0xa0, 0xcf, 0x42, 0x1b, 0x3f, 0x80, 0x0d, 0xfe, 0x44, 0xc9, 0x32, 0x7d, - 0xdb, 0x0d, 0x68, 0xca, 0x87, 0xc4, 0x0f, 0x6b, 0xf7, 0x37, 0x72, 0xd2, 0xe4, 0x05, 0x23, 0x41, - 0xe1, 0x5d, 0x58, 0x1f, 0x12, 0x25, 0x48, 0xd9, 0xbe, 0xf0, 0x6a, 0xfc, 0x31, 0x6c, 0x1e, 0x12, - 0x93, 0x5a, 0x93, 0x54, 0x61, 0x0c, 0xdc, 0x80, 0xfa, 0x9b, 0x88, 0xd0, 0x99, 0xc4, 0xc6, 0x0b, - 0xfc, 0x00, 0xce, 0x17, 0xe1, 0x92, 0xdf, 0x3e, 0x34, 0x28, 0x09, 0xa3, 0xe9, 0x29, 0xf4, 0x14, - 0x08, 0x7b, 0xb0, 0x3a, 0x24, 0xec, 0xeb, 0xc8, 0x67, 0x44, 0xa9, 0xdc, 0x87, 0x86, 0x69, 0xdb, - 0x94, 0x84, 0xa1, 0x50, 0x5a, 0x14, 0x71, 0x2f, 0x3e, 0x33, 0x14, 0xe8, 0xfd, 0x62, 0x73, 0x08, - 0x6b, 0xa9, 0x3e, 0xc9, 0xf9, 0x16, 0x34, 0x2d, 0x3f, 0x64, 0xc2, 0x43, 0xda, 0x29, 0x1e, 0x6a, - 0x70, 0x24, 0x77, 0x90, 0x0f, 0x6b, 0x87, 0x13, 0x27, 0x78, 0x4c, 0x6d, 0x42, 0xff, 0x15, 0xe6, - 0x9f, 0xc0, 0x7a, 0x46, 0x61, 0x1a, 0xea, 0x8c, 0x9a, 0xd6, 0x6b, 0xc7, 0x7b, 0x95, 0xe6, 0x11, - 0xa8, 0xad, 0x91, 0x8d, 0x7f, 0xd5, 0xa0, 0x21, 0xf5, 0xa2, 0x3d, 0x58, 0x0b, 0x19, 0x25, 0x84, - 0x8d, 0x25, 0x81, 0xf1, 0x4d, 0x79, 0xa3, 0x1b, 0xef, 0x4b, 0xe0, 0xcd, 0x12, 0x64, 0x5f, 0x26, - 0x44, 0x1e, 0xd9, 0xe7, 0xe9, 0x62, 0xf1, 0xfa, 0x17, 0xe7, 0x84, 0xf8, 0xcd, 0x93, 0xc1, 0xe2, - 0xc6, 0xa2, 0x33, 0x95, 0x0c, 0x72, 0x89, 0x2e, 0x40, 0xf3, 0xad, 0x13, 0x8c, 0x2d, 0xdf, 0x26, - 0x22, 0x17, 0xea, 0x46, 0xe3, 0xad, 0x13, 0x0c, 0x7c, 0x9b, 0xe0, 0x21, 0xb4, 0x33, 0x76, 0xe6, - 0x32, 0x6c, 0x62, 0x39, 0xae, 0x39, 0x15, 0x14, 0x3b, 0x86, 0x5a, 0xa2, 0x6d, 0x80, 0x23, 0x6a, - 0x5a, 0x3c, 0xed, 0xcc, 0xa9, 0x60, 0xd5, 0x31, 0x32, 0x3b, 0xf8, 0x05, 0xd4, 0x85, 0x20, 0xb4, - 0x0b, 0x1d, 0x2b, 0xa2, 0x94, 0x78, 0xd6, 0x2c, 0xd6, 0x18, 0xbf, 0x75, 0x45, 0x6d, 0x72, 0xb5, - 0xe8, 0x06, 0x2c, 0x9b, 0x42, 0xa3, 0x2c, 0xbf, 0xd5, 0x9e, 0x97, 0x38, 0x3c, 0x84, 0xed, 0x21, - 0x61, 0x87, 0x51, 0x10, 0xf8, 0x94, 0x11, 0x7b, 0x10, 0x4b, 0x73, 0x48, 0x9a, 0x03, 0x1f, 0x40, - 0x37, 0xa7, 0x58, 0x95, 0xa0, 0x4e, 0x56, 0x73, 0x88, 0xbf, 0x87, 0x0b, 0x83, 0x64, 0xc3, 0x3b, - 0x26, 0x34, 0x74, 0x7c, 0x4f, 0x85, 0xd2, 0x15, 0x58, 0x3a, 0xa2, 0xbe, 0x2b, 0xe3, 0x08, 0xcd, - 0xb3, 0x32, 0xc4, 0x39, 0x2f, 0xa2, 0xcc, 0x8f, 0x9f, 0x17, 0x3b, 0x68, 0x99, 0xf9, 0xc2, 0x9e, - 0x7f, 0x6b, 0xd0, 0x1d, 0x50, 0x62, 0x3b, 0xbc, 0x03, 0xd8, 0x23, 0xef, 0xc8, 0x47, 0xd7, 0x01, - 0x59, 0x62, 0x67, 0x6c, 0x99, 0xd4, 0x1e, 0x7b, 0x91, 0xfb, 0x92, 0x50, 0x69, 0x95, 0x35, 0x2b, - 0xc1, 0x7e, 0x25, 0xf6, 0xd1, 0x15, 0x58, 0xcd, 0xa2, 0xad, 0xe3, 0x63, 0xd9, 0xe4, 0x3a, 0x29, - 0x74, 0x70, 0x7c, 0x8c, 0x3e, 0x87, 0xad, 0x2c, 0x8e, 0xfc, 0x18, 0x38, 0x54, 0x14, 0xe4, 0xf1, - 0x8c, 0x98, 0x54, 0x04, 0x46, 0xdd, 0xe8, 0xa5, 0x77, 0x0e, 0x12, 0xc0, 0x77, 0xc4, 0xa4, 0xe8, - 0x2e, 0x5c, 0xac, 0xb8, 0xee, 0xfa, 0x1e, 0x9b, 0x88, 0x08, 0xaa, 0x1b, 0x17, 0xca, 0xee, 0x3f, - 0xe2, 0x00, 0x3c, 0x83, 0xce, 0x60, 0x62, 0xd2, 0x57, 0x49, 0xfd, 0xf8, 0x28, 0x71, 0x69, 0xb5, - 0xf1, 0x24, 0x02, 0xdd, 0x81, 0x76, 0x46, 0xbb, 0x8c, 0x81, 0xad, 0x7c, 0x1e, 0xe6, 0x8c, 0x68, - 0x40, 0xca, 0x04, 0xdf, 0x86, 0xae, 0x52, 0x9d, 0xba, 0x9e, 0x51, 0xd3, 0x0b, 0xe3, 0x68, 0x4c, - 0x53, 0xb2, 0x93, 0xd9, 0x1d, 0xd9, 0xf8, 0x05, 0xb4, 0x44, 0x1e, 0x8b, 0x29, 0x43, 0xf5, 0x7f, - 0xed, 0xd4, 0xfe, 0xcf, 0xa3, 0x82, 0xd7, 0x1f, 0xc9, 0xb3, 0x34, 0x2a, 0xf8, 0x39, 0x7e, 0x57, - 0x83, 0xb6, 0x2a, 0x14, 0xd1, 0x94, 0xf1, 0xbc, 0xf3, 0xf9, 0x32, 0x25, 0xd4, 0x10, 0xeb, 0x91, - 0x8d, 0x6e, 0xc0, 0x46, 0x38, 0x71, 0x82, 0x80, 0x57, 0x90, 0x6c, 0x29, 0x89, 0xa3, 0x09, 0xa9, - 0xb3, 0xa7, 0x49, 0x49, 0x41, 0xb7, 0xa1, 0x93, 0xdc, 0x10, 0x6c, 0x16, 0x2b, 0xd9, 0xac, 0x28, - 0xe0, 0xc0, 0x0f, 0x19, 0xba, 0x0b, 0x6b, 0xc9, 0x45, 0x55, 0x27, 0x97, 0x4e, 0xa8, 0x93, 0xab, - 0x0a, 0xad, 0x0a, 0xd8, 0x75, 0x55, 0x2f, 0xeb, 0xa2, 0x5e, 0x9e, 0xcf, 0xdd, 0x4a, 0x0c, 0xaa, - 0x0a, 0xa6, 0x0d, 0x17, 0x0f, 0x89, 0x67, 0x8b, 0xfd, 0x81, 0xef, 0x1d, 0x39, 0xd4, 0x15, 0x61, - 0x93, 0x69, 0x6d, 0xc4, 0x35, 0x9d, 0xa9, 0x6a, 0x6d, 0x62, 0x81, 0xf6, 0xa1, 0x2e, 0x4c, 0x53, - 0x5a, 0x0f, 0x32, 0x36, 0x35, 0x62, 0x18, 0x7e, 0xa7, 0x01, 0x1a, 0x50, 0x62, 0x32, 0x92, 0x6b, - 0x05, 0x95, 0xc3, 0xcd, 0x2e, 0x74, 0xc4, 0x81, 0xaa, 0x05, 0xd2, 0xd0, 0x2b, 0x7c, 0x53, 0x95, - 0x83, 0x6c, 0x23, 0x59, 0x3c, 0x43, 0x23, 0xc1, 0x3f, 0xc1, 0xb9, 0x1c, 0x07, 0x19, 0x8d, 0x89, - 0xbd, 0xb4, 0x33, 0xd8, 0x6b, 0xde, 0xaf, 0xb5, 0xb3, 0xf9, 0x15, 0xff, 0xa5, 0xc1, 0xfa, 0x93, - 0xa9, 0x69, 0xfd, 0x87, 0x16, 0x48, 0x9d, 0x59, 0xcf, 0x3a, 0xb3, 0x90, 0xde, 0xcb, 0xef, 0x97, - 0xde, 0xf7, 0x01, 0x65, 0x9f, 0x95, 0x4c, 0x38, 0x32, 0x40, 0xb4, 0x33, 0x05, 0x48, 0xff, 0x4f, - 0x0d, 0xda, 0x3c, 0x8d, 0x0f, 0x09, 0x3d, 0x76, 0x2c, 0x82, 0xee, 0x88, 0x86, 0x2c, 0x32, 0x7f, - 0xab, 0xf8, 0xa6, 0xcc, 0xf7, 0x82, 0x9e, 0xb7, 0x7b, 0x3c, 0x50, 0x2f, 0xa0, 0xcf, 0xa0, 0x21, - 0x87, 0xfa, 0xc2, 0xed, 0xfc, 0xa8, 0xaf, 0xaf, 0xcf, 0x95, 0x11, 0xbc, 0x80, 0xbe, 0x84, 0x56, - 0xf2, 0xf9, 0x80, 0x2e, 0xcd, 0xcb, 0xcf, 0x0a, 0x28, 0x55, 0xdf, 0xff, 0x59, 0x83, 0xcd, 0xfc, - 0xd8, 0xad, 0x9e, 0xf5, 0x03, 0x9c, 0x2b, 0x99, 0xc9, 0xd1, 0x87, 0x39, 0x31, 0xd5, 0x5f, 0x03, - 0xfa, 0xde, 0xe9, 0xc0, 0xd8, 0x01, 0x9c, 0x45, 0x0d, 0x36, 0xe5, 0x24, 0x39, 0x30, 0x99, 0x39, - 0xf5, 0x5f, 0x29, 0x16, 0x43, 0x58, 0xc9, 0x8e, 0xcd, 0xa8, 0xe4, 0x15, 0xfa, 0xff, 0xe7, 0x34, - 0x15, 0xa7, 0x58, 0xbc, 0x80, 0xee, 0x03, 0xa4, 0x53, 0x33, 0xda, 0x2e, 0x9a, 0x3a, 0x3f, 0x4e, - 0xeb, 0xa5, 0x43, 0x2e, 0x5e, 0x40, 0xcf, 0xa1, 0x9b, 0x9f, 0x93, 0x11, 0xce, 0x21, 0x4b, 0x67, - 0x6e, 0x7d, 0xf7, 0x44, 0x4c, 0x62, 0x85, 0xdf, 0x34, 0x58, 0x3d, 0x94, 0x79, 0xa8, 0xde, 0x3f, - 0x82, 0xa6, 0x1a, 0x6f, 0xd1, 0xc5, 0x22, 0xe9, 0xec, 0x94, 0xad, 0x5f, 0xaa, 0x38, 0x4d, 0x2c, - 0xf0, 0x10, 0x5a, 0xc9, 0xbc, 0x59, 0x08, 0x96, 0xe2, 0xe0, 0xab, 0x6f, 0x57, 0x1d, 0x27, 0x64, - 0xff, 0xd0, 0x60, 0x55, 0x25, 0xb7, 0x22, 0xfb, 0x1c, 0xce, 0x97, 0x4f, 0x52, 0xa5, 0x6e, 0xbb, - 0x56, 0x24, 0x7c, 0xc2, 0x08, 0x86, 0x17, 0xd0, 0x10, 0x1a, 0xf1, 0x54, 0xc5, 0xd0, 0x95, 0x7c, - 0x2e, 0x54, 0xcd, 0x5c, 0x7a, 0x49, 0xa5, 0xc3, 0x0b, 0xfd, 0x67, 0xd0, 0x7d, 0x62, 0xce, 0x5c, - 0xe2, 0x25, 0x19, 0x3c, 0x80, 0xe5, 0xb8, 0xed, 0x23, 0x3d, 0x2f, 0x39, 0x3b, 0x86, 0xe8, 0x5b, - 0xa5, 0x67, 0x89, 0x41, 0x26, 0xb0, 0x72, 0xc0, 0x6b, 0x94, 0x12, 0xfa, 0x2d, 0xff, 0x02, 0x2b, - 0xe9, 0x56, 0xe8, 0x6a, 0x21, 0x1a, 0xaa, 0x3b, 0x5a, 0x45, 0xce, 0xfe, 0xce, 0x4d, 0x3f, 0x21, - 0xd6, 0x6b, 0x3f, 0x4a, 0x9e, 0x60, 0x40, 0x3b, 0xd3, 0x30, 0xd0, 0xe5, 0x62, 0x49, 0x2c, 0xb4, - 0x33, 0x7d, 0xa7, 0x1a, 0x90, 0x58, 0xfc, 0x31, 0x40, 0x5a, 0x2e, 0x0b, 0x29, 0x33, 0xd7, 0x1e, - 0xf4, 0xcb, 0x95, 0xe7, 0x4a, 0xe0, 0xcb, 0x65, 0xf1, 0xf7, 0xcc, 0xad, 0x7f, 0x02, 0x00, 0x00, - 0xff, 0xff, 0xdd, 0xe8, 0xfb, 0x77, 0xac, 0x11, 0x00, 0x00, +var fileDescriptor_demo_be349a9cb1cf0a0c = []byte{ + // 1442 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdf, 0x72, 0xd3, 0xc6, + 0x17, 0x8e, 0x92, 0x38, 0x8e, 0x8f, 0x63, 0x27, 0x59, 0x12, 0x7e, 0x46, 0xe1, 0x4f, 0x7e, 0x9b, + 0x29, 0x0d, 0x05, 0x52, 0x70, 0x3b, 0xc3, 0x45, 0x69, 0x29, 0x63, 0x32, 0xc6, 0x33, 0x50, 0xa8, + 0x02, 0x1d, 0x3a, 0x74, 0xea, 0x11, 0xd2, 0x82, 0x55, 0x22, 0xad, 0x58, 0xad, 0x32, 0x35, 0xd3, + 0x2b, 0xfa, 0x16, 0x7d, 0x80, 0x5e, 0xf4, 0x01, 0xda, 0x77, 0xe8, 0x7d, 0x5f, 0xa1, 0xcf, 0xd1, + 0xd9, 0xd5, 0xae, 0xfe, 0x59, 0x4a, 0xc2, 0x4d, 0x7b, 0xa7, 0xdd, 0xfd, 0xf6, 0x9c, 0x6f, 0xcf, + 0x9e, 0x73, 0xf6, 0xb3, 0x01, 0x5c, 0xe2, 0xd3, 0xbd, 0x90, 0x51, 0x4e, 0x51, 0x7b, 0xe2, 0x85, + 0x11, 0x27, 0x2c, 0x9a, 0xd0, 0x10, 0xef, 0xc3, 0xf2, 0xc0, 0x66, 0x7c, 0xc4, 0x89, 0x8f, 0x2e, + 0x00, 0x84, 0x8c, 0xba, 0xb1, 0xc3, 0xc7, 0x9e, 0xdb, 0x33, 0xb6, 0x8d, 0xdd, 0x96, 0xd5, 0x52, + 0x33, 0x23, 0x17, 0x99, 0xb0, 0xfc, 0x26, 0xb6, 0x03, 0xee, 0xf1, 0x69, 0x6f, 0x7e, 0xdb, 0xd8, + 0x6d, 0x58, 0xe9, 0x18, 0x3f, 0x81, 0xee, 0x5d, 0xd7, 0x15, 0x56, 0x2c, 0xf2, 0x26, 0x26, 0x11, + 0x47, 0xff, 0x83, 0x66, 0x1c, 0x11, 0x96, 0x59, 0x5a, 0x12, 0xc3, 0x91, 0x8b, 0xae, 0xc0, 0xa2, + 0xc7, 0x89, 0x2f, 0x4d, 0xb4, 0xfb, 0x9b, 0x7b, 0x39, 0x36, 0x7b, 0x9a, 0x8a, 0x25, 0x21, 0xf8, + 0x2a, 0xac, 0xed, 0xfb, 0x21, 0x9f, 0x8a, 0xe9, 0x93, 0xec, 0xe2, 0x2b, 0xd0, 0x1d, 0x12, 0x7e, + 0x2a, 0xe8, 0x03, 0x58, 0x14, 0xb8, 0x7a, 0x8e, 0x57, 0xa1, 0x21, 0x08, 0x44, 0xbd, 0xf9, 0xed, + 0x85, 0x7a, 0x92, 0x09, 0x06, 0x37, 0xa1, 0x21, 0x59, 0xe2, 0x6f, 0xc0, 0x7c, 0xe0, 0x45, 0xdc, + 0x22, 0x0e, 0xf5, 0x7d, 0x12, 0xb8, 0x36, 0xf7, 0x68, 0x10, 0x9d, 0x18, 0x90, 0x4b, 0xd0, 0xce, + 0xc2, 0x9e, 0xb8, 0x6c, 0x59, 0x90, 0xc6, 0x3d, 0xc2, 0x5f, 0xc0, 0x56, 0xa5, 0xdd, 0x28, 0xa4, + 0x41, 0x44, 0xca, 0xfb, 0x8d, 0x99, 0xfd, 0xbf, 0x18, 0xd0, 0x7c, 0x9c, 0x0c, 0x51, 0x17, 0xe6, + 0x53, 0x02, 0xf3, 0x9e, 0x8b, 0x10, 0x2c, 0x06, 0xb6, 0x4f, 0xe4, 0x6d, 0xb4, 0x2c, 0xf9, 0x8d, + 0xb6, 0xa1, 0xed, 0x92, 0xc8, 0x61, 0x5e, 0x28, 0x1c, 0xf5, 0x16, 0xe4, 0x52, 0x7e, 0x0a, 0xf5, + 0xa0, 0x19, 0x7a, 0x0e, 0x8f, 0x19, 0xe9, 0x2d, 0xca, 0x55, 0x3d, 0x44, 0x1f, 0x43, 0x2b, 0x64, + 0x9e, 0x43, 0xc6, 0x71, 0xe4, 0xf6, 0x1a, 0xf2, 0x8a, 0x51, 0x21, 0x7a, 0x0f, 0x69, 0x40, 0xa6, + 0xd6, 0xb2, 0x04, 0x3d, 0x8d, 0x5c, 0x7c, 0x1f, 0x36, 0xc4, 0xe1, 0x14, 0xbf, 0xec, 0x54, 0x37, + 0x60, 0x59, 0x1d, 0x21, 0x39, 0x52, 0xbb, 0xbf, 0x51, 0xb0, 0xa3, 0x36, 0x58, 0x29, 0x0a, 0xef, + 0xc0, 0xfa, 0x90, 0x68, 0x43, 0x3a, 0xea, 0xa5, 0xf3, 0xe2, 0xeb, 0xb0, 0x79, 0x40, 0x6c, 0xe6, + 0x4c, 0x32, 0x87, 0x09, 0x70, 0x03, 0x1a, 0x6f, 0x62, 0xc2, 0xa6, 0x0a, 0x9b, 0x0c, 0xf0, 0x7d, + 0x38, 0x5b, 0x86, 0x2b, 0x7e, 0x7b, 0xd0, 0x64, 0x24, 0x8a, 0x0f, 0x4f, 0xa0, 0xa7, 0x41, 0x38, + 0x80, 0xd5, 0x21, 0xe1, 0x5f, 0xc7, 0x94, 0x13, 0xed, 0x72, 0x0f, 0x9a, 0xb6, 0xeb, 0x32, 0x12, + 0x45, 0xd2, 0x69, 0xd9, 0xc4, 0xdd, 0x64, 0xcd, 0xd2, 0xa0, 0xf7, 0xcb, 0xca, 0xbb, 0xb0, 0x96, + 0xf9, 0x53, 0x9c, 0xaf, 0xc3, 0xb2, 0x43, 0x23, 0x2e, 0xef, 0xc6, 0xa8, 0xbd, 0x9b, 0xa6, 0xc0, + 0x88, 0xab, 0xa1, 0xb0, 0x76, 0x30, 0xf1, 0xc2, 0x47, 0xcc, 0x25, 0xec, 0x5f, 0xe1, 0xfc, 0x29, + 0xac, 0xe7, 0x1c, 0x66, 0xe9, 0xcd, 0x99, 0xed, 0xbc, 0xf6, 0x82, 0x57, 0x59, 0xed, 0x80, 0x9e, + 0x1a, 0xb9, 0xf8, 0x57, 0x03, 0x9a, 0xca, 0x2f, 0xda, 0x85, 0xb5, 0x88, 0x33, 0x42, 0xf8, 0x58, + 0x11, 0x18, 0xdf, 0x54, 0x3b, 0xba, 0xc9, 0xbc, 0x02, 0xde, 0xac, 0x40, 0xf6, 0x55, 0x11, 0x14, + 0x91, 0x7d, 0x51, 0x22, 0x8e, 0xe8, 0x79, 0x49, 0x1d, 0xc8, 0x6f, 0x51, 0x00, 0x0e, 0x8d, 0x03, + 0xce, 0xa6, 0xba, 0x00, 0xd4, 0x10, 0x9d, 0x83, 0xe5, 0xb7, 0x5e, 0x38, 0x76, 0xa8, 0x4b, 0x64, + 0xfe, 0x37, 0xac, 0xe6, 0x5b, 0x2f, 0x1c, 0x50, 0x97, 0xe0, 0x67, 0xd0, 0x90, 0x11, 0x46, 0x3b, + 0xd0, 0x71, 0x62, 0xc6, 0x48, 0xe0, 0x4c, 0x13, 0x60, 0x42, 0x71, 0x45, 0x4f, 0x0a, 0xb4, 0x48, + 0xc8, 0x38, 0xf0, 0x78, 0x24, 0x59, 0x2d, 0x58, 0xc9, 0x40, 0xcc, 0x06, 0x76, 0x40, 0x23, 0xc9, + 0xa6, 0x61, 0x25, 0x03, 0x3c, 0x84, 0x8b, 0x43, 0xc2, 0x0f, 0xe2, 0x30, 0xa4, 0x8c, 0x13, 0x77, + 0x90, 0xd8, 0xf1, 0x48, 0x96, 0xae, 0x1f, 0x40, 0xb7, 0xe0, 0x52, 0xf7, 0x89, 0x4e, 0xde, 0x67, + 0x84, 0xbf, 0x83, 0x73, 0x83, 0x74, 0x22, 0x38, 0x22, 0x2c, 0xf2, 0x68, 0xa0, 0xef, 0xfe, 0x32, + 0x2c, 0xbe, 0x64, 0xd4, 0x3f, 0x26, 0x75, 0xe4, 0xba, 0xe8, 0x74, 0x9c, 0x26, 0x07, 0x4b, 0x22, + 0xba, 0xc4, 0xa9, 0x0c, 0xc0, 0xdf, 0x06, 0x74, 0x07, 0x8c, 0xb8, 0x9e, 0x68, 0xd3, 0xee, 0x28, + 0x78, 0x49, 0xd1, 0x35, 0x40, 0x8e, 0x9c, 0x19, 0x3b, 0x36, 0x73, 0xc7, 0x41, 0xec, 0xbf, 0x20, + 0x4c, 0xc5, 0x63, 0xcd, 0x49, 0xb1, 0x5f, 0xc9, 0x79, 0x74, 0x19, 0x56, 0xf3, 0x68, 0xe7, 0xe8, + 0x48, 0xbd, 0x44, 0x9d, 0x0c, 0x3a, 0x38, 0x3a, 0x42, 0x9f, 0xc3, 0x56, 0x1e, 0x47, 0x7e, 0x0c, + 0x3d, 0x26, 0xbb, 0xe6, 0x78, 0x4a, 0x6c, 0xa6, 0x62, 0xd7, 0xcb, 0xf6, 0xec, 0xa7, 0x80, 0x6f, + 0x89, 0xcd, 0xd0, 0x1d, 0x38, 0x5f, 0xb3, 0xdd, 0xa7, 0x01, 0x9f, 0xc8, 0x2b, 0x6f, 0x58, 0xe7, + 0xaa, 0xf6, 0x3f, 0x14, 0x00, 0x3c, 0x85, 0xce, 0x60, 0x62, 0xb3, 0x57, 0x69, 0xa9, 0x7f, 0x04, + 0x4b, 0xb6, 0x2f, 0x32, 0xe4, 0x98, 0xe0, 0x29, 0x04, 0xba, 0x0d, 0xed, 0x9c, 0x77, 0xf5, 0x4e, + 0x6e, 0x15, 0x0b, 0xa7, 0x10, 0x44, 0x0b, 0x32, 0x26, 0xf8, 0x16, 0x74, 0xb5, 0xeb, 0xec, 0xea, + 0x39, 0xb3, 0x83, 0xc8, 0x76, 0xe4, 0x11, 0xd2, 0x1a, 0xea, 0xe4, 0x66, 0x47, 0x2e, 0xfe, 0x1e, + 0x5a, 0xb2, 0xf0, 0xa4, 0x14, 0xd0, 0x8f, 0xb4, 0x71, 0xe2, 0x23, 0x2d, 0xb2, 0x42, 0x34, 0x0c, + 0xc5, 0xb3, 0x32, 0x2b, 0xc4, 0x3a, 0x7e, 0x37, 0x0f, 0x6d, 0x5d, 0xd9, 0xf1, 0x21, 0x17, 0x85, + 0x42, 0xc5, 0x30, 0x23, 0xd4, 0x94, 0xe3, 0x91, 0x8b, 0x6e, 0xc0, 0x46, 0x34, 0xf1, 0xc2, 0x50, + 0x94, 0x7c, 0xbe, 0xf6, 0x93, 0x6c, 0x42, 0x7a, 0xed, 0x49, 0xda, 0x03, 0xd0, 0x2d, 0xe8, 0xa4, + 0x3b, 0x24, 0x9b, 0x85, 0x5a, 0x36, 0x2b, 0x1a, 0x38, 0xa0, 0x11, 0x47, 0x77, 0x60, 0x2d, 0xdd, + 0xa8, 0x1b, 0xdb, 0xe2, 0x31, 0x8d, 0x6d, 0x55, 0xa3, 0x75, 0xc7, 0xb9, 0xa6, 0x1b, 0x5c, 0x43, + 0x36, 0xb8, 0xb3, 0x85, 0x5d, 0x69, 0x40, 0x75, 0x87, 0x73, 0xe1, 0xfc, 0x01, 0x09, 0x5c, 0x39, + 0x3f, 0xa0, 0xc1, 0x4b, 0x8f, 0xf9, 0x32, 0x6d, 0x72, 0xaf, 0x10, 0xf1, 0x6d, 0xef, 0x50, 0xbf, + 0x42, 0x72, 0x80, 0xf6, 0xa0, 0x21, 0x43, 0xa3, 0x62, 0xdc, 0x9b, 0xf5, 0x91, 0xc4, 0xd4, 0x4a, + 0x60, 0xf8, 0x9d, 0x01, 0x68, 0xc0, 0x88, 0xcd, 0x49, 0xa1, 0x77, 0xd7, 0x2a, 0x90, 0x1d, 0xe8, + 0xc8, 0x05, 0xdd, 0x0b, 0x54, 0xa0, 0x57, 0xc4, 0xa4, 0x6e, 0x07, 0xf9, 0xce, 0xbf, 0x70, 0x8a, + 0xce, 0x8f, 0x7f, 0x82, 0x33, 0x05, 0x0e, 0x2a, 0x1b, 0xd3, 0x78, 0x19, 0xa7, 0x88, 0xd7, 0xec, + 0xbd, 0xce, 0x9f, 0xee, 0x5e, 0xf1, 0x5f, 0x06, 0xac, 0x3f, 0x3e, 0xb4, 0x9d, 0xff, 0x30, 0x02, + 0xd9, 0x65, 0x36, 0xf2, 0x97, 0x59, 0x2a, 0xef, 0xa5, 0xf7, 0x2b, 0xef, 0x7b, 0x80, 0xf2, 0xc7, + 0x4a, 0xc5, 0x88, 0x4a, 0x10, 0xe3, 0x54, 0x09, 0xd2, 0xff, 0xd3, 0x80, 0xb6, 0x28, 0xe3, 0x03, + 0xc2, 0x8e, 0x3c, 0x87, 0xa0, 0xdb, 0xf2, 0x05, 0x95, 0x95, 0xbf, 0x55, 0x3e, 0x53, 0x4e, 0xd4, + 0x9b, 0xc5, 0xb8, 0x27, 0xaa, 0x77, 0x0e, 0x7d, 0x06, 0x4d, 0xa5, 0xbc, 0x4b, 0xbb, 0x8b, 0x7a, + 0xdc, 0x5c, 0x9f, 0x69, 0x23, 0x78, 0x0e, 0x7d, 0x09, 0xad, 0x54, 0xe3, 0xa3, 0x0b, 0xb3, 0xf6, + 0xf3, 0x06, 0x2a, 0xdd, 0xf7, 0x7f, 0x36, 0x60, 0xb3, 0xa8, 0x8d, 0xf5, 0xb1, 0x7e, 0x80, 0x33, + 0x15, 0xc2, 0x19, 0x7d, 0x58, 0x30, 0x53, 0x2f, 0xd9, 0xcd, 0xdd, 0x93, 0x81, 0xc9, 0x05, 0x08, + 0x16, 0xf3, 0xb0, 0xa9, 0x44, 0xdf, 0xc0, 0xe6, 0xf6, 0x21, 0x7d, 0xa5, 0x59, 0x0c, 0x61, 0x25, + 0xaf, 0x70, 0x51, 0xc5, 0x29, 0xcc, 0xff, 0xcf, 0x78, 0x2a, 0x0b, 0x4e, 0x3c, 0x87, 0xee, 0x01, + 0x64, 0x02, 0x17, 0x5d, 0x2c, 0x87, 0xba, 0xa8, 0x7c, 0xcd, 0x4a, 0x3d, 0x8a, 0xe7, 0xd0, 0x73, + 0xe8, 0x16, 0x25, 0x2d, 0xc2, 0x05, 0x64, 0xa5, 0x3c, 0x36, 0x77, 0x8e, 0xc5, 0xa4, 0x51, 0xf8, + 0xcd, 0x80, 0xd5, 0x03, 0x55, 0x87, 0xfa, 0xfc, 0x23, 0x58, 0xd6, 0x4a, 0x14, 0x9d, 0x2f, 0x93, + 0xce, 0x0b, 0x62, 0xf3, 0x42, 0xcd, 0x6a, 0x1a, 0x81, 0x07, 0xd0, 0x4a, 0x05, 0x62, 0x29, 0x59, + 0xca, 0x4a, 0xd5, 0xbc, 0x58, 0xb7, 0x9c, 0x92, 0xfd, 0xc3, 0x80, 0x55, 0x5d, 0xdc, 0x9a, 0xec, + 0x73, 0x38, 0x5b, 0xad, 0xa4, 0x2a, 0xaf, 0xed, 0x6a, 0x99, 0xf0, 0x31, 0x12, 0x0c, 0xcf, 0xa1, + 0x21, 0x34, 0x13, 0x55, 0xc5, 0xd1, 0xe5, 0x62, 0x2d, 0xd4, 0x69, 0x2e, 0xb3, 0xa2, 0xd3, 0xe1, + 0xb9, 0xfe, 0x53, 0xe8, 0x3e, 0xb6, 0xa7, 0x3e, 0x09, 0xd2, 0x0a, 0x1e, 0xc0, 0x52, 0xf2, 0xec, + 0x23, 0xb3, 0x68, 0x39, 0x2f, 0x43, 0xcc, 0xad, 0xca, 0xb5, 0x34, 0x20, 0x13, 0x58, 0xd9, 0x17, + 0x3d, 0x4a, 0x1b, 0x7d, 0x26, 0x7e, 0x2c, 0x55, 0xbc, 0x56, 0xe8, 0x4a, 0x29, 0x1b, 0xea, 0x5f, + 0xb4, 0x9a, 0x9a, 0xfd, 0x5d, 0x84, 0x7e, 0x42, 0x9c, 0xd7, 0x34, 0x4e, 0x8f, 0x60, 0x41, 0x3b, + 0xf7, 0x60, 0xa0, 0x4b, 0xe5, 0x96, 0x58, 0x7a, 0xce, 0xcc, 0xed, 0x7a, 0x40, 0x1a, 0xf1, 0x47, + 0x00, 0x59, 0xbb, 0x2c, 0x95, 0xcc, 0xcc, 0xf3, 0x60, 0x5e, 0xaa, 0x5d, 0xd7, 0x06, 0x5f, 0x2c, + 0xc9, 0xff, 0x50, 0x3e, 0xf9, 0x27, 0x00, 0x00, 0xff, 0xff, 0x67, 0x70, 0xff, 0x79, 0x51, 0x11, + 0x00, 0x00, } diff --git a/src/frontend/handlers.go b/src/frontend/handlers.go index 447bcbc..38c98b1 100644 --- a/src/frontend/handlers.go +++ b/src/frontend/handlers.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + "frontend/money" "html/template" "log" "net/http" @@ -67,10 +68,7 @@ func (fe *frontendServer) homeHandler(w http.ResponseWriter, r *http.Request) { } ps := make([]productView, len(products)) for i, p := range products { - price, err := fe.convertCurrency(r.Context(), &pb.Money{ - Amount: p.PriceUsd, - CurrencyCode: defaultCurrency, - }, currentCurrency(r)) + price, err := fe.convertCurrency(r.Context(), p.GetPriceUsd(), currentCurrency(r)) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return @@ -113,9 +111,7 @@ func (fe *frontendServer) productHandler(w http.ResponseWriter, r *http.Request) return } - price, err := fe.convertCurrency(r.Context(), &pb.Money{ - Amount: p.GetPriceUsd(), - CurrencyCode: defaultCurrency}, currentCurrency(r)) + price, err := fe.convertCurrency(r.Context(), p.GetPriceUsd(), currentCurrency(r)) if err != nil { http.Error(w, fmt.Sprintf("failed to convert currency: %+v", err), http.StatusInternalServerError) return @@ -209,19 +205,17 @@ func (fe *frontendServer) viewCartHandler(w http.ResponseWriter, r *http.Request http.Error(w, fmt.Sprintf("could not retrieve product #%s: %+v", item.GetProductId(), err), http.StatusInternalServerError) return } - price, err := fe.convertCurrency(r.Context(), &pb.Money{ - Amount: p.GetPriceUsd(), - CurrencyCode: defaultCurrency}, currentCurrency(r)) + price, err := fe.convertCurrency(r.Context(), p.GetPriceUsd(), currentCurrency(r)) if err != nil { http.Error(w, fmt.Sprintf("could not convert currency for product #%s: %+v", item.GetProductId(), err), http.StatusInternalServerError) return } - multPrice := multMoney(*price.GetAmount(), uint32(item.GetQuantity())) + multPrice := money.MultiplySlow(*price, uint32(item.GetQuantity())) items[i] = cartItemView{ Item: p, Quantity: item.GetQuantity(), - Price: &pb.Money{Amount: &multPrice, CurrencyCode: price.GetCurrencyCode()}} + Price: &multPrice} } if err := templates.ExecuteTemplate(w, "cart", map[string]interface{}{ diff --git a/src/frontend/main.go b/src/frontend/main.go index 46ca919..e5217e9 100644 --- a/src/frontend/main.go +++ b/src/frontend/main.go @@ -71,7 +71,7 @@ func main() { } svc.recommendationSvcConn, err = grpc.DialContext(ctx, svc.recommendationSvcAddr, grpc.WithInsecure()) if err != nil { - log.Fatalf("failed to connect recommendation service at %s: %+v", svc.recommendationSvcConn, err) + log.Fatalf("failed to connect recommendation service at %s: %+v", svc.recommendationSvcAddr, err) } r := mux.NewRouter() diff --git a/src/frontend/money/money.go b/src/frontend/money/money.go index bc1856a..0c580a0 100644 --- a/src/frontend/money/money.go +++ b/src/frontend/money/money.go @@ -107,10 +107,10 @@ func Sum(l, r pb.Money) (pb.Money, error) { // MultiplySlow is a slow multiplication operation done through adding the value // to itself n-1 times. -func MultiplySlow(m pb.MoneyAmount, n uint32) pb.MoneyAmount { +func MultiplySlow(m pb.Money, n uint32) pb.Money { out := m for n > 1 { - out = Sum(out, m) + out = Must(Sum(out, m)) n-- } return out