Skip to content

Instantly share code, notes, and snippets.

@martinez099
Created April 8, 2020 19:51
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save martinez099/fdd1528dc2dbfd74df8df21f19b41e2a to your computer and use it in GitHub Desktop.
order_created() event handler subscribed to `order` events
def order_created(self, _item):
if _item.event_action != 'entity_created':
return
order = json.loads(_item.event_data)
rsp = send_message('read-model', 'get_entity', {'name': 'cart', 'id': order['cart_id']})
cart = rsp['result']
result = self._decr_from_cart(cart)
order['status'] = 'IN_STOCK' if result else 'OUT_OF_STOCK'
self.event_store.publish('order', create_event('entity_updated', order))
@martinez099
Copy link
Author

02 guard wrong event
05 parse payload, i.e. an order
06 get cart of order from read model
08 check and decrement inventory
09 set status according to result
10 publish updated event

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment