diff --git a/docs/README.md b/docs/README.md index 0623f75..42fc99d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -13,6 +13,8 @@ The code has been formatted using [`gofmt`](https://pkg.go.dev/cmd/gofmt). The protobuf schema files have been formatted using [`buf format`](https://buf.build/docs/reference/cli/buf/format). -The markdown files have been linted and formatted using [markdownlint](https://github.com/DavidAnson/markdownlint). +The markdown files have been linted and formatted using [markdownlint](https://github.com/DavidAnson/markdownlint) (with the exception of MD013). -I used [PlantUML](https://plantuml.com/) as the tool to help make the diagrams. The PlantUML files are avaliable alongside the resulting images: [`/docs/imgs/overview.plantuml`](/docs/imgs/overview.plantuml) and [`/docs/imgs/placeordersaga.plantuml`](/docs/imgs/placeordersaga.plantuml) +Commit messages should adhere to the [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) specification. + +I used [PlantUML](https://plantuml.com/) as the tool to help make the diagrams. The PlantUML files are available alongside the resulting images: [`/docs/imgs/overview.plantuml`](/docs/imgs/overview.plantuml) and [`/docs/imgs/placeordersaga.plantuml`](/docs/imgs/placeordersaga.plantuml) diff --git a/docs/imgs/placeordersaga.plantuml b/docs/imgs/placeordersaga.plantuml index 22ada43..1531cbf 100644 --- a/docs/imgs/placeordersaga.plantuml +++ b/docs/imgs/placeordersaga.plantuml @@ -22,11 +22,11 @@ start |Product| :ProductPriceQuoteEvent; -if (type) is (UNAVALIABLE) then +if (type) is (UNAVAILABLE) then |Order| :OrderRejectedEvent; kill -else (AVALIABLE) +else (AVAILABLE) endif |Order| diff --git a/docs/imgs/placeordersaga.svg b/docs/imgs/placeordersaga.svg index b09c9ad..ab6131a 100644 --- a/docs/imgs/placeordersaga.svg +++ b/docs/imgs/placeordersaga.svg @@ -23,9 +23,9 @@ ProductPriceQuoteEvent -UNAVALIABLE +UNAVAILABLE type -AVALIABLE +AVAILABLE StockReservationEvent diff --git a/internal/pkg/protogen/events/v1/product.pb.go b/internal/pkg/protogen/events/v1/product.pb.go index cd23ad6..02558e9 100644 --- a/internal/pkg/protogen/events/v1/product.pb.go +++ b/internal/pkg/protogen/events/v1/product.pb.go @@ -39,21 +39,21 @@ type ProductPriceQuoteEvent_Type int32 const ( ProductPriceQuoteEvent_TYPE_UNSPECIFIED ProductPriceQuoteEvent_Type = 0 - ProductPriceQuoteEvent_TYPE_UNAVALIABLE ProductPriceQuoteEvent_Type = 1 - ProductPriceQuoteEvent_TYPE_AVALIABLE ProductPriceQuoteEvent_Type = 2 + ProductPriceQuoteEvent_TYPE_UNAVAILABLE ProductPriceQuoteEvent_Type = 1 + ProductPriceQuoteEvent_TYPE_AVAILABLE ProductPriceQuoteEvent_Type = 2 ) // Enum value maps for ProductPriceQuoteEvent_Type. var ( ProductPriceQuoteEvent_Type_name = map[int32]string{ 0: "TYPE_UNSPECIFIED", - 1: "TYPE_UNAVALIABLE", - 2: "TYPE_AVALIABLE", + 1: "TYPE_UNAVAILABLE", + 2: "TYPE_AVAILABLE", } ProductPriceQuoteEvent_Type_value = map[string]int32{ "TYPE_UNSPECIFIED": 0, - "TYPE_UNAVALIABLE": 1, - "TYPE_AVALIABLE": 2, + "TYPE_UNAVAILABLE": 1, + "TYPE_AVAILABLE": 2, } ) @@ -434,8 +434,8 @@ var file_stocklet_events_v1_product_proto_rawDesc = []byte{ 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x4c, 0x49, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, - 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x56, 0x41, 0x4c, 0x49, 0x41, 0x42, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, + 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x65, 0x78, 0x6f, 0x6c, 0x61, 0x6e, 0x2f, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x6c, 0x65, 0x74, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x6b, 0x67, diff --git a/internal/svc/order/order.go b/internal/svc/order/order.go index 71744d3..8f189dc 100644 --- a/internal/svc/order/order.go +++ b/internal/svc/order/order.go @@ -154,7 +154,7 @@ func (svc OrderService) PlaceOrder(ctx context.Context, req *pb.PlaceOrderReques } func (svc OrderService) ProcessProductPriceQuoteEvent(ctx context.Context, req *eventpb.ProductPriceQuoteEvent) (*emptypb.Empty, error) { - if req.Type == eventpb.ProductPriceQuoteEvent_TYPE_AVALIABLE { + if req.Type == eventpb.ProductPriceQuoteEvent_TYPE_AVAILABLE { // Set order status to processing (from pending) // Dispatch OrderProcessingEvent _, err := svc.store.ProcessOrder(ctx, req.OrderId, req.TotalPrice) @@ -162,7 +162,7 @@ func (svc OrderService) ProcessProductPriceQuoteEvent(ctx context.Context, req * return nil, errors.WrapServiceError(errors.ErrCodeExtService, "failed to update in response to event", err) } - } else if req.Type == eventpb.ProductPriceQuoteEvent_TYPE_UNAVALIABLE { + } else if req.Type == eventpb.ProductPriceQuoteEvent_TYPE_UNAVAILABLE { // Set order status to rejected (from pending) // Dispatch OrderRejectedEvent _, err := svc.store.RejectOrder(ctx, req.OrderId) diff --git a/internal/svc/product/controller/postgres.go b/internal/svc/product/controller/postgres.go index 0541925..5e18a35 100644 --- a/internal/svc/product/controller/postgres.go +++ b/internal/svc/product/controller/postgres.go @@ -17,6 +17,7 @@ package controller import ( "context" + "golang.org/x/exp/maps" "github.com/doug-martin/goqu/v9" @@ -212,7 +213,7 @@ func (c postgresController) PriceOrderProducts(ctx context.Context, orderId stri productPrice, ok := productPrices[productId] if !ok { // Prepare and dispatch failure product pricing event - evt, evtTopic, err := product.PrepareProductPriceQuoteEvent_Unavaliable(orderId) + evt, evtTopic, err := product.PrepareProductPriceQuoteEvent_Unavailable(orderId) if err != nil { return errors.WrapServiceError(errors.ErrCodeService, "failed to create event", err) } @@ -229,8 +230,8 @@ func (c postgresController) PriceOrderProducts(ctx context.Context, orderId stri totalPrice += productPrice * float32(quantity) } - // Prepare and dispatch succesful product pricing event - evt, evtTopic, err := product.PrepareProductPriceQuoteEvent_Avaliable( + // Prepare and dispatch successful product pricing event + evt, evtTopic, err := product.PrepareProductPriceQuoteEvent_Available( orderId, productQuantities, productPrices, diff --git a/internal/svc/product/event.go b/internal/svc/product/event.go index 0625155..8b11a43 100644 --- a/internal/svc/product/event.go +++ b/internal/svc/product/event.go @@ -58,12 +58,12 @@ func PrepareProductDeletedEvent(product *pb.Product) ([]byte, string, error) { return messaging.MarshalEvent(event, topic) } -func PrepareProductPriceQuoteEvent_Avaliable(orderId string, productQuantities map[string]int32, productPrices map[string]float32, totalPrice float32) ([]byte, string, error) { +func PrepareProductPriceQuoteEvent_Available(orderId string, productQuantities map[string]int32, productPrices map[string]float32, totalPrice float32) ([]byte, string, error) { topic := messaging.Product_PriceQuotation_Topic event := &eventspb.ProductPriceQuoteEvent{ Revision: 1, - Type: eventspb.ProductPriceQuoteEvent_TYPE_AVALIABLE, + Type: eventspb.ProductPriceQuoteEvent_TYPE_AVAILABLE, OrderId: orderId, ProductQuantities: productQuantities, ProductPrices: productPrices, @@ -73,12 +73,12 @@ func PrepareProductPriceQuoteEvent_Avaliable(orderId string, productQuantities m return messaging.MarshalEvent(event, topic) } -func PrepareProductPriceQuoteEvent_Unavaliable(orderId string) ([]byte, string, error) { +func PrepareProductPriceQuoteEvent_Unavailable(orderId string) ([]byte, string, error) { topic := messaging.Product_PriceQuotation_Topic event := &eventspb.ProductPriceQuoteEvent{ Revision: 1, - Type: eventspb.ProductPriceQuoteEvent_TYPE_UNAVALIABLE, + Type: eventspb.ProductPriceQuoteEvent_TYPE_UNAVAILABLE, OrderId: orderId, } diff --git a/schema/protobufs/stocklet/events/v1/product.proto b/schema/protobufs/stocklet/events/v1/product.proto index 29bbd73..6648386 100644 --- a/schema/protobufs/stocklet/events/v1/product.proto +++ b/schema/protobufs/stocklet/events/v1/product.proto @@ -44,8 +44,8 @@ message ProductDeletedEvent { message ProductPriceQuoteEvent { enum Type { TYPE_UNSPECIFIED = 0; - TYPE_UNAVALIABLE = 1; - TYPE_AVALIABLE = 2; + TYPE_UNAVAILABLE = 1; + TYPE_AVAILABLE = 2; } int32 revision = 1;