From 9aa64b2808fcbe8239f7d904fbf8d1dcae796c33 Mon Sep 17 00:00:00 2001 From: matst80 Date: Thu, 14 Nov 2024 23:21:34 +0100 Subject: [PATCH] handle checkout ordertype --- message-handler.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/message-handler.go b/message-handler.go index 92f672f..87a2dac 100644 --- a/message-handler.go +++ b/message-handler.go @@ -219,3 +219,34 @@ func (h *RemoveDeliveryHandler) Is(m *Message) bool { _, ok := m.Content.(*messages.RemoveDelivery) return ok } + +type CheckoutHandler struct { + TypedMessageHandler +} + +func (h *CheckoutHandler) Write(m *Message, w io.Writer) error { + messageBytes, err := proto.Marshal(m.Content.(*messages.CreateCheckoutOrder)) + if err != nil { + return err + } + w.Write(messageBytes) + return nil +} + +func (h *CheckoutHandler) Read(data []byte) (interface{}, error) { + msg := &messages.CreateCheckoutOrder{} + + err := proto.Unmarshal(data, msg) + if err != nil { + return nil, err + } + return msg, nil +} + +func (h *CheckoutHandler) Is(m *Message) bool { + if m.Type != CreateCheckoutOrderType { + return false + } + _, ok := m.Content.(*messages.CreateCheckoutOrder) + return ok +}