add handler
This commit is contained in:
@@ -17,6 +17,7 @@ var Handlers = map[uint16]MessageHandler{
|
|||||||
RemoveDeliveryType: &RemoveDeliveryHandler{},
|
RemoveDeliveryType: &RemoveDeliveryHandler{},
|
||||||
CreateCheckoutOrderType: &CheckoutHandler{},
|
CreateCheckoutOrderType: &CheckoutHandler{},
|
||||||
SetCartItemsType: &SetCartItemsHandler{},
|
SetCartItemsType: &SetCartItemsHandler{},
|
||||||
|
OrderCompletedType: &OrderCompletedHandler{},
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMessageHandler(t uint16) (MessageHandler, error) {
|
func GetMessageHandler(t uint16) (MessageHandler, error) {
|
||||||
@@ -283,3 +284,32 @@ func (h *CheckoutHandler) Is(m *Message) bool {
|
|||||||
_, ok := m.Content.(*messages.CreateCheckoutOrder)
|
_, ok := m.Content.(*messages.CreateCheckoutOrder)
|
||||||
return ok
|
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
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user