From b63415bc2c47846f5b60c49fff9c93f992a932af Mon Sep 17 00:00:00 2001 From: matst80 Date: Fri, 18 Apr 2025 17:46:29 +0200 Subject: [PATCH] add handler --- message-handler.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/message-handler.go b/message-handler.go index 7489479..36ab61c 100644 --- a/message-handler.go +++ b/message-handler.go @@ -17,6 +17,7 @@ var Handlers = map[uint16]MessageHandler{ RemoveDeliveryType: &RemoveDeliveryHandler{}, CreateCheckoutOrderType: &CheckoutHandler{}, SetCartItemsType: &SetCartItemsHandler{}, + OrderCompletedType: &OrderCompletedHandler{}, } func GetMessageHandler(t uint16) (MessageHandler, error) { @@ -283,3 +284,32 @@ func (h *CheckoutHandler) Is(m *Message) bool { _, ok := m.Content.(*messages.CreateCheckoutOrder) return ok } + +type OrderCompletedHandler struct { + TypedMessageHandler +} + +func (h *OrderCompletedHandler) Write(m *Message, w io.Writer) error { + messageBytes, err := proto.Marshal(m.Content.(*messages.OrderCreated)) + if err != nil { + return err + } + w.Write(messageBytes) + return nil +} +func (h *OrderCompletedHandler) Read(data []byte) (interface{}, error) { + msg := &messages.OrderCreated{} + + err := proto.Unmarshal(data, msg) + if err != nil { + return nil, err + } + return msg, nil +} +func (h *OrderCompletedHandler) Is(m *Message) bool { + if m.Type != OrderCompletedType { + return false + } + _, ok := m.Content.(*messages.OrderCreated) + return ok +}